mirror of
https://github.com/zoriya/Kyoo.git
synced 2025-05-24 02:02:36 -04:00
Making show/episodes images be download
This commit is contained in:
parent
f16003a2b9
commit
994992c9aa
@ -7,9 +7,9 @@ namespace Kyoo.Controllers
|
||||
public interface IProviderManager
|
||||
{
|
||||
Task<Collection> GetCollectionFromName(string name, Library library);
|
||||
Task<Show> GetShowFromName(string showName, Library library);
|
||||
Task<Show> GetShowFromName(string showName, string showPath, Library library);
|
||||
Task<Season> GetSeason(Show show, long seasonNumber, Library library);
|
||||
Task<Episode> GetEpisode(Show show, long seasonNumber, long episodeNumber, long absoluteNumber, Library library);
|
||||
Task<Episode> GetEpisode(Show show, string episodePath, long seasonNumber, long episodeNumber, long absoluteNumber, Library library);
|
||||
Task<IEnumerable<People>> GetPeople(Show show, Library library);
|
||||
}
|
||||
}
|
@ -2,7 +2,7 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Kyoo.Controllers.ThumbnailsManager
|
||||
namespace Kyoo.Controllers
|
||||
{
|
||||
public interface IThumbnailsManager
|
||||
{
|
||||
|
@ -2,7 +2,6 @@
|
||||
using Kyoo.Models;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text.RegularExpressions;
|
||||
@ -137,10 +136,7 @@ namespace Kyoo.Controllers
|
||||
|
||||
if (!libraryManager.IsShowRegistered(showPath, out long showID))
|
||||
{
|
||||
Show show = await metadataProvider.GetShowFromName(showTitle, library);
|
||||
show.Path = showPath;
|
||||
show.Title = show.Title ?? showTitle;
|
||||
show.Slug = show.Slug ?? Utility.ToSlug(showTitle);
|
||||
Show show = await metadataProvider.GetShowFromName(showTitle, showPath, library);
|
||||
showProviderIDs = show.ExternalIDs;
|
||||
showID = libraryManager.RegisterShow(show);
|
||||
|
||||
@ -170,15 +166,11 @@ namespace Kyoo.Controllers
|
||||
|
||||
private async Task<long> RegisterSeason(Show show, long seasonNumber, Library library)
|
||||
{
|
||||
if (!libraryManager.IsSeasonRegistered(show.ID, seasonNumber, out long seasonID))
|
||||
{
|
||||
Season season = await metadataProvider.GetSeason(show, seasonNumber, library);
|
||||
season.ShowID = show.ID;
|
||||
season.SeasonNumber = season.SeasonNumber == -1 ? seasonNumber : season.SeasonNumber;
|
||||
season.Title ??= $"Season {season.SeasonNumber}";
|
||||
seasonID = libraryManager.RegisterSeason(season);
|
||||
}
|
||||
|
||||
if (libraryManager.IsSeasonRegistered(show.ID, seasonNumber, out long seasonID))
|
||||
return seasonID;
|
||||
|
||||
Season season = await metadataProvider.GetSeason(show, seasonNumber, library);
|
||||
seasonID = libraryManager.RegisterSeason(season);
|
||||
return seasonID;
|
||||
}
|
||||
|
||||
@ -188,13 +180,7 @@ namespace Kyoo.Controllers
|
||||
if (seasonNumber != -1)
|
||||
seasonID = await RegisterSeason(show, seasonNumber, library);
|
||||
|
||||
Episode episode = await metadataProvider.GetEpisode(show, seasonNumber, episodeNumber, absoluteNumber, library);
|
||||
episode.ShowID = show.ID;
|
||||
episode.Path = episodePath;
|
||||
episode.SeasonNumber = episode.SeasonNumber != -1 ? episode.SeasonNumber : seasonNumber;
|
||||
episode.EpisodeNumber = episode.EpisodeNumber != -1 ? episode.EpisodeNumber : episodeNumber;
|
||||
episode.AbsoluteNumber = episode.AbsoluteNumber != -1 ? episode.AbsoluteNumber : absoluteNumber;
|
||||
|
||||
Episode episode = await metadataProvider.GetEpisode(show, episodePath, seasonNumber, episodeNumber, absoluteNumber, library);
|
||||
if (seasonID == -1)
|
||||
seasonID = await RegisterSeason(show, seasonNumber, library);
|
||||
episode.SeasonID = seasonID;
|
||||
|
@ -3,7 +3,6 @@ using Kyoo.Models;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Kyoo.Controllers.ThumbnailsManager;
|
||||
|
||||
namespace Kyoo.Controllers
|
||||
{
|
||||
@ -57,21 +56,33 @@ namespace Kyoo.Controllers
|
||||
return await GetMetadata(provider => provider.GetCollectionFromName(name), library, $"the collection {name}");
|
||||
}
|
||||
|
||||
public async Task<Show> GetShowFromName(string showName, Library library)
|
||||
public async Task<Show> GetShowFromName(string showName, string showPath, Library library)
|
||||
{
|
||||
Show show = await GetMetadata(provider => provider.GetShowFromName(showName), library, $"the show {showName}");
|
||||
show.Path = showPath;
|
||||
show.Slug = Utility.ToSlug(showName);
|
||||
show.Title ??= showName;
|
||||
await thumbnailsManager.Validate(show);
|
||||
return show;
|
||||
}
|
||||
|
||||
public async Task<Season> GetSeason(Show show, long seasonNumber, Library library)
|
||||
{
|
||||
return await GetMetadata(provider => provider.GetSeason(show, seasonNumber), library, $"the season {seasonNumber} of {show.Title}");
|
||||
Season season = await GetMetadata(provider => provider.GetSeason(show, seasonNumber), library, $"the season {seasonNumber} of {show.Title}");
|
||||
season.ShowID = show.ID;
|
||||
season.SeasonNumber = season.SeasonNumber == -1 ? seasonNumber : season.SeasonNumber;
|
||||
season.Title ??= $"Season {season.SeasonNumber}";
|
||||
return season;
|
||||
}
|
||||
|
||||
public async Task<Episode> GetEpisode(Show show, long seasonNumber, long episodeNumber, long absoluteNumber, Library library)
|
||||
public async Task<Episode> GetEpisode(Show show, string episodePath, long seasonNumber, long episodeNumber, long absoluteNumber, Library library)
|
||||
{
|
||||
Episode episode = await GetMetadata(provider => provider.GetEpisode(show, seasonNumber, episodeNumber, absoluteNumber), library, "an episode");
|
||||
episode.ShowID = show.ID;
|
||||
episode.Path = episodePath;
|
||||
episode.SeasonNumber = episode.SeasonNumber != -1 ? episode.SeasonNumber : seasonNumber;
|
||||
episode.EpisodeNumber = episode.EpisodeNumber != -1 ? episode.EpisodeNumber : episodeNumber;
|
||||
episode.AbsoluteNumber = episode.AbsoluteNumber != -1 ? episode.AbsoluteNumber : absoluteNumber;
|
||||
await thumbnailsManager.Validate(episode);
|
||||
return episode;
|
||||
}
|
||||
|
@ -2,12 +2,11 @@
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Net;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Kyoo.Controllers.ThumbnailsManager
|
||||
namespace Kyoo.Controllers
|
||||
{
|
||||
public class ThumbnailsManager : IThumbnailsManager
|
||||
{
|
||||
@ -20,7 +19,7 @@ namespace Kyoo.Controllers.ThumbnailsManager
|
||||
|
||||
public async Task<Show> Validate(Show show)
|
||||
{
|
||||
if (show == null || show.Path == null)
|
||||
if (show?.Path == null)
|
||||
return null;
|
||||
string localThumb = Path.Combine(show.Path, "poster.jpg");
|
||||
string localLogo = Path.Combine(show.Path, "logo.png");
|
||||
|
@ -1,5 +1,4 @@
|
||||
using Kyoo.Controllers;
|
||||
using Kyoo.Controllers.ThumbnailsManager;
|
||||
using Microsoft.AspNetCore.Builder;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.AspNetCore.SpaServices.AngularCli;
|
||||
|
Loading…
x
Reference in New Issue
Block a user