示例#1
0
        /// <inheritdoc/>
        public async Task <MediaContainer> GetExtras(string authToken, string plexServerHost, string key)
        {
            var apiRequest =
                new ApiRequestBuilder(plexServerHost, $"library/metadata/{key}/extras", HttpMethod.Get)
                .AddPlexToken(authToken)
                .AddQueryParams(ClientUtilities.GetLibraryFlagFields())
                .AddQueryParams(ClientUtilities.GetClientIdentifierHeader(this.clientOptions.ClientId))
                .AcceptJson()
                .Build();

            var wrapper = await this.apiService.InvokeApiAsync <GenericWrapper <MediaContainer> >(apiRequest);

            return(wrapper.Container);
        }
示例#2
0
        /// <inheritdoc/>
        public async Task <MediaContainer> LibrarySearch(string authToken, string plexServerHost, string title,
                                                         string libraryKey, string sort, SearchType libraryType, List <FilterRequest> filters = null, int start = 0,
                                                         int count = 100)
        {
            var queryParams = new Dictionary <string, string> {
                { "type", ((int)libraryType).ToString() }
            };

            if (!string.IsNullOrEmpty(title))
            {
                queryParams.Add("title", title);
            }

            if (!string.IsNullOrEmpty(sort))
            {
                queryParams.Add("sort", sort);
            }

            // Include Guids now available PMS v1.24.3.5033
            queryParams.Add("includeGuids", "1");

            var apiRequest =
                new ApiRequestBuilder(plexServerHost, $"library/sections/{libraryKey}/all", HttpMethod.Get)
                .AddPlexToken(authToken)
                .AddQueryParams(queryParams)
                .AddFilterFields(filters)
                .AddQueryParams(ClientUtilities.GetLibraryFlagFields())
                .AddQueryParams(ClientUtilities.GetClientIdentifierHeader(this.clientOptions.ClientId))
                .AddQueryParams(ClientUtilities.GetClientLimitHeaders(start, count))
                .AcceptJson()
                .Build();

            var wrapper = await this.apiService.InvokeApiAsync <GenericWrapper <MediaContainer> >(apiRequest);

            return(wrapper.Container);
        }