/// <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); }
/// <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); }