Cleaning up the thumnail's manager

This commit is contained in:
Zoe Roux 2021-03-24 18:12:03 +01:00
parent cb2c60c9ad
commit f60f622e1d
3 changed files with 21 additions and 35 deletions

View File

@ -16,7 +16,6 @@ namespace Kyoo.Controllers
public Task<ICollection<string>> ListFiles([NotNull] string path);
public Task<bool> Exists([NotNull] string path);
// TODO replace every use of System.IO with this to allow custom paths (like uptobox://path)
// TODO find a way to handle Transmux/Transcode with this system.
public string GetExtraDirectory(Show show);

View File

@ -7,11 +7,11 @@ namespace Kyoo.Controllers
{
public interface IThumbnailsManager
{
Task<Show> Validate(Show show, bool alwaysDownload = false);
Task<Season> Validate(Season season, bool alwaysDownload = false);
Task<Episode> Validate(Episode episode, bool alwaysDownload = false);
Task<People> Validate(People actors, bool alwaysDownload = false);
Task<ProviderID> Validate(ProviderID actors, bool alwaysDownload = false);
Task Validate(Show show, bool alwaysDownload = false);
Task Validate(Season season, bool alwaysDownload = false);
Task Validate(Episode episode, bool alwaysDownload = false);
Task Validate(People actors, bool alwaysDownload = false);
Task Validate(ProviderID actors, bool alwaysDownload = false);
Task<string> GetShowPoster([NotNull] Show show);
Task<string> GetShowLogo([NotNull] Show show);

View File

@ -38,7 +38,7 @@ namespace Kyoo.Controllers
}
}
public async Task<Show> Validate(Show show, bool alwaysDownload)
public async Task Validate(Show show, bool alwaysDownload)
{
if (show.Poster != null)
{
@ -61,11 +61,9 @@ namespace Kyoo.Controllers
foreach (PeopleRole role in show.People)
await Validate(role.People, alwaysDownload);
return show;
}
public async Task<People> Validate([NotNull] People people, bool alwaysDownload)
public async Task Validate([NotNull] People people, bool alwaysDownload)
{
if (people == null)
throw new ArgumentNullException(nameof(people));
@ -75,42 +73,32 @@ namespace Kyoo.Controllers
Directory.CreateDirectory(root);
if (alwaysDownload || !File.Exists(localPath))
await DownloadImage(people.Poster, localPath, $"The profile picture of {people.Name}");
return people;
}
public async Task<Season> Validate(Season season, bool alwaysDownload)
public async Task Validate(Season season, bool alwaysDownload)
{
if (season?.Show?.Path == null)
return default;
if (season?.Show?.Path == null || season.Poster == null)
return;
if (season.Poster != null)
{
string localPath = await GetSeasonPoster(season);
if (alwaysDownload || !File.Exists(localPath))
await DownloadImage(season.Poster, localPath, $"The poster of {season.Show.Title}'s season {season.SeasonNumber}");
}
return season;
}
public async Task<Episode> Validate(Episode episode, bool alwaysDownload)
public async Task Validate(Episode episode, bool alwaysDownload)
{
if (episode?.Path == null)
return default;
if (episode?.Path == null || episode.Thumb == null)
return;
if (episode.Thumb != null)
{
string localPath = await GetEpisodeThumb(episode);
if (alwaysDownload || !File.Exists(localPath))
await DownloadImage(episode.Thumb, localPath, $"The thumbnail of {episode.Slug}");
}
return episode;
}
public async Task<ProviderID> Validate(ProviderID provider, bool alwaysDownload)
public async Task Validate(ProviderID provider, bool alwaysDownload)
{
if (provider.Logo == null)
return provider;
return;
string root = _config.GetValue<string>("providerPath");
string localPath = Path.Combine(root, provider.Slug + ".jpg");
@ -118,7 +106,6 @@ namespace Kyoo.Controllers
Directory.CreateDirectory(root);
if (alwaysDownload || !File.Exists(localPath))
await DownloadImage(provider.Logo, localPath, $"The logo of {provider.Slug}");
return provider;
}
public Task<string> GetShowBackdrop(Show show)