#1464 added the Plex episode cacher

#865
This commit is contained in:
Jamie.Rees 2017-08-23 16:00:13 +01:00
parent bf043fc76e
commit 0e6462bbd5
31 changed files with 410 additions and 33 deletions

View file

@ -60,18 +60,18 @@ namespace Ombi.Api.Plex
return await Api.Request<PlexServer>(request);
}
public async Task<PlexLibraries> GetLibrarySections(string authToken, string plexFullHost)
public async Task<PlexContainer> GetLibrarySections(string authToken, string plexFullHost)
{
var request = new Request("library/sections", plexFullHost, HttpMethod.Get);
AddHeaders(request, authToken);
return await Api.Request<PlexLibraries>(request);
return await Api.Request<PlexContainer>(request);
}
public async Task<PlexLibraries> GetLibrary(string authToken, string plexFullHost, string libraryId)
public async Task<PlexContainer> GetLibrary(string authToken, string plexFullHost, string libraryId)
{
var request = new Request($"library/sections/{libraryId}/all", plexFullHost, HttpMethod.Get);
AddHeaders(request, authToken);
return await Api.Request<PlexLibraries>(request);
return await Api.Request<PlexContainer>(request);
}
/// <summary>
@ -106,6 +106,26 @@ namespace Ombi.Api.Plex
return await Api.Request<PlexMetadata>(request);
}
/// <summary>
/// Gets all episodes.
/// </summary>
/// <param name="authToken">The authentication token.</param>
/// <param name="host">The host.</param>
/// <param name="section">The section.</param>
/// <param name="start">The start count.</param>
/// <param name="retCount">The return count, how many items you want returned.</param>
/// <returns></returns>
public async Task<PlexContainer> GetAllEpisodes(string authToken, string host, string section, int start, int retCount)
{
var request = new Request($"/library/sections/{section}/all", host, HttpMethod.Get);
request.AddQueryString("type", "4");
AddLimitHeaders(request, start, retCount);
AddHeaders(request, authToken);
return await Api.Request<PlexContainer>(request);
}
/// <summary>
/// Adds the required headers and also the authorization header
/// </summary>
@ -129,5 +149,11 @@ namespace Ombi.Api.Plex
request.AddContentHeader("Content-Type", request.ContentType == ContentType.Json ? "application/json" : "application/xml");
request.AddHeader("Accept", "application/json");
}
private void AddLimitHeaders(Request request, int from, int to)
{
request.AddHeader("X-Plex-Container-Start", from.ToString());
request.AddHeader("X-Plex-Container-Size", to.ToString());
}
}
}