mirror of
https://github.com/Radarr/Radarr.git
synced 2024-11-20 01:42:35 +01:00
New: Fetch up to 1000 movies from Plex Watchlist
This commit is contained in:
parent
3388fae1a5
commit
463741da1f
@ -13,10 +13,18 @@ namespace NzbDrone.Core.ImportLists.Plex
|
|||||||
{
|
{
|
||||||
public class PlexImport : HttpImportListBase<PlexListSettings>
|
public class PlexImport : HttpImportListBase<PlexListSettings>
|
||||||
{
|
{
|
||||||
public readonly IPlexTvService _plexTvService;
|
public override string Name => "Plex Watchlist";
|
||||||
public override ImportListType ListType => ImportListType.Plex;
|
public override ImportListType ListType => ImportListType.Plex;
|
||||||
public override TimeSpan MinRefreshInterval => TimeSpan.FromHours(6);
|
public override TimeSpan MinRefreshInterval => TimeSpan.FromHours(6);
|
||||||
|
|
||||||
|
public override bool Enabled => true;
|
||||||
|
public override bool EnableAuto => false;
|
||||||
|
|
||||||
|
public override int PageSize => 100;
|
||||||
|
public override TimeSpan RateLimit => TimeSpan.FromSeconds(5);
|
||||||
|
|
||||||
|
private readonly IPlexTvService _plexTvService;
|
||||||
|
|
||||||
public PlexImport(IPlexTvService plexTvService,
|
public PlexImport(IPlexTvService plexTvService,
|
||||||
IHttpClient httpClient,
|
IHttpClient httpClient,
|
||||||
IImportListStatusService importListStatusService,
|
IImportListStatusService importListStatusService,
|
||||||
@ -28,11 +36,6 @@ public PlexImport(IPlexTvService plexTvService,
|
|||||||
_plexTvService = plexTvService;
|
_plexTvService = plexTvService;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string Name => "Plex Watchlist";
|
|
||||||
public override int PageSize => 50;
|
|
||||||
public override bool Enabled => true;
|
|
||||||
public override bool EnableAuto => false;
|
|
||||||
|
|
||||||
public override ImportListFetchResult Fetch()
|
public override ImportListFetchResult Fetch()
|
||||||
{
|
{
|
||||||
Settings.Validate().Filter("AccessToken").ThrowOnError();
|
Settings.Validate().Filter("AccessToken").ThrowOnError();
|
||||||
@ -47,10 +50,7 @@ public override IParseImportListResponse GetParser()
|
|||||||
|
|
||||||
public override IImportListRequestGenerator GetRequestGenerator()
|
public override IImportListRequestGenerator GetRequestGenerator()
|
||||||
{
|
{
|
||||||
return new PlexListRequestGenerator(_plexTvService, PageSize)
|
return new PlexListRequestGenerator(_plexTvService, Settings, PageSize);
|
||||||
{
|
|
||||||
Settings = Settings
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override object RequestAction(string action, IDictionary<string, string> query)
|
public override object RequestAction(string action, IDictionary<string, string> query)
|
||||||
|
@ -5,13 +5,16 @@ namespace NzbDrone.Core.ImportLists.Plex
|
|||||||
{
|
{
|
||||||
public class PlexListRequestGenerator : IImportListRequestGenerator
|
public class PlexListRequestGenerator : IImportListRequestGenerator
|
||||||
{
|
{
|
||||||
private readonly IPlexTvService _plexTvService;
|
private const int MaxPages = 10;
|
||||||
private readonly int _pageSize;
|
|
||||||
public PlexListSettings Settings { get; set; }
|
|
||||||
|
|
||||||
public PlexListRequestGenerator(IPlexTvService plexTvService, int pageSize)
|
private readonly IPlexTvService _plexTvService;
|
||||||
|
private readonly PlexListSettings _settings;
|
||||||
|
private readonly int _pageSize;
|
||||||
|
|
||||||
|
public PlexListRequestGenerator(IPlexTvService plexTvService, PlexListSettings settings, int pageSize)
|
||||||
{
|
{
|
||||||
_plexTvService = plexTvService;
|
_plexTvService = plexTvService;
|
||||||
|
_settings = settings;
|
||||||
_pageSize = pageSize;
|
_pageSize = pageSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -26,11 +29,9 @@ public virtual ImportListPageableRequestChain GetMovies()
|
|||||||
|
|
||||||
private IEnumerable<ImportListRequest> GetMoviesRequest()
|
private IEnumerable<ImportListRequest> GetMoviesRequest()
|
||||||
{
|
{
|
||||||
var maxPages = 10;
|
for (var page = 0; page < MaxPages; page++)
|
||||||
|
|
||||||
for (var page = 0; page < maxPages; page++)
|
|
||||||
{
|
{
|
||||||
yield return new ImportListRequest(_plexTvService.GetWatchlist(Settings.AccessToken, _pageSize, page * _pageSize));
|
yield return new ImportListRequest(_plexTvService.GetWatchlist(_settings.AccessToken, _pageSize, page * _pageSize));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user