mirror of
https://github.com/zoriya/Kyoo.git
synced 2025-05-31 04:04:21 -04:00
Making the plugin manager start on app startup
This commit is contained in:
parent
899adb2b9d
commit
3e9da31ac5
@ -14,12 +14,12 @@ namespace Kyoo.Controllers
|
|||||||
//For the show
|
//For the show
|
||||||
Task<Show> GetShowByID(string id);
|
Task<Show> GetShowByID(string id);
|
||||||
Task<Show> GetShowFromName(string showName);
|
Task<Show> GetShowFromName(string showName);
|
||||||
Task<IEnumerable<People>> GetPeople(string id);
|
Task<IEnumerable<People>> GetPeople(Show show);
|
||||||
|
|
||||||
//For the seasons
|
//For the seasons
|
||||||
Task<Season> GetSeason(string showName, long seasonNumber);
|
Task<Season> GetSeason(string showName, long seasonNumber);
|
||||||
|
|
||||||
//For the episodes
|
//For the episodes
|
||||||
Task<Episode> GetEpisode(string externalIDs, long seasonNumber, long episodeNumber, long absoluteNumber);
|
Task<Episode> GetEpisode(Show show, long seasonNumber, long episodeNumber, long absoluteNumber);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@ namespace Kyoo.Controllers
|
|||||||
Task<Collection> GetCollectionFromName(string name, Library library);
|
Task<Collection> GetCollectionFromName(string name, Library library);
|
||||||
Task<Show> GetShowFromName(string showName, Library library);
|
Task<Show> GetShowFromName(string showName, Library library);
|
||||||
Task<Season> GetSeason(string showName, long seasonNumber, Library library);
|
Task<Season> GetSeason(string showName, long seasonNumber, Library library);
|
||||||
Task<Episode> GetEpisode(string externalIDs, long seasonNumber, long episodeNumber, long absoluteNumber, Library library);
|
Task<Episode> GetEpisode(Show show, long seasonNumber, long episodeNumber, long absoluteNumber, Library library);
|
||||||
Task<IEnumerable<People>> GetPeople(string showExternalIDs, Library library);
|
Task<IEnumerable<People>> GetPeople(Show show, Library library);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>netcoreapp3.0</TargetFramework>
|
<TargetFramework>netcoreapp3.0</TargetFramework>
|
||||||
@ -11,7 +11,7 @@
|
|||||||
<Company>SDG</Company>
|
<Company>SDG</Company>
|
||||||
<PackageLicenseExpression>GPL-3.0-or-later</PackageLicenseExpression>
|
<PackageLicenseExpression>GPL-3.0-or-later</PackageLicenseExpression>
|
||||||
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
|
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
|
||||||
<PackageVersion>1.0.2</PackageVersion>
|
<PackageVersion>1.0.5</PackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@ -132,9 +132,11 @@ namespace Kyoo.Models
|
|||||||
if (ExternalIDs?.Contains(provider) != true)
|
if (ExternalIDs?.Contains(provider) != true)
|
||||||
return null;
|
return null;
|
||||||
int startIndex = ExternalIDs.IndexOf(provider, StringComparison.Ordinal) + provider.Length + 1; //The + 1 is for the '='
|
int startIndex = ExternalIDs.IndexOf(provider, StringComparison.Ordinal) + provider.Length + 1; //The + 1 is for the '='
|
||||||
|
if (ExternalIDs.IndexOf('|', startIndex) == -1)
|
||||||
|
return ExternalIDs.Substring(startIndex);
|
||||||
return ExternalIDs.Substring(startIndex, ExternalIDs.IndexOf('|', startIndex) - startIndex);
|
return ExternalIDs.Substring(startIndex, ExternalIDs.IndexOf('|', startIndex) - startIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Show Set(string slug, string path)
|
public Show Set(string slug, string path)
|
||||||
{
|
{
|
||||||
Slug = slug;
|
Slug = slug;
|
||||||
|
@ -148,7 +148,7 @@ namespace Kyoo.Controllers
|
|||||||
libraryManager.AddShowToCollection(showID, collectionID);
|
libraryManager.AddShowToCollection(showID, collectionID);
|
||||||
}
|
}
|
||||||
|
|
||||||
IEnumerable<People> actors = await metadataProvider.GetPeople(show.ExternalIDs, library);
|
IEnumerable<People> actors = await metadataProvider.GetPeople(show, library);
|
||||||
libraryManager.RegisterShowPeople(showID, actors);
|
libraryManager.RegisterShowPeople(showID, actors);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -170,7 +170,7 @@ namespace Kyoo.Controllers
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Episode episode = await metadataProvider.GetEpisode(show.ExternalIDs, seasonNumber, episodeNumber, absoluteNumber, library);
|
Episode episode = await metadataProvider.GetEpisode(show, seasonNumber, episodeNumber, absoluteNumber, library);
|
||||||
episode.ShowID = show.id;
|
episode.ShowID = show.id;
|
||||||
episode.Path = episodePath;
|
episode.Path = episodePath;
|
||||||
|
|
||||||
|
@ -19,7 +19,6 @@ namespace Kyoo.Controllers
|
|||||||
{
|
{
|
||||||
this.provider = provider;
|
this.provider = provider;
|
||||||
this.config = config;
|
this.config = config;
|
||||||
ReloadPlugins();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public T GetPlugin<T>(string name)
|
public T GetPlugin<T>(string name)
|
||||||
|
@ -69,16 +69,16 @@ namespace Kyoo.Controllers
|
|||||||
return await GetMetadata(provider => provider.GetSeason(showName, seasonNumber), library, $"the season ${seasonNumber} of {showName}");
|
return await GetMetadata(provider => provider.GetSeason(showName, seasonNumber), library, $"the season ${seasonNumber} of {showName}");
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<Episode> GetEpisode(string externalIDs, long seasonNumber, long episodeNumber, long absoluteNumber, Library library)
|
public async Task<Episode> GetEpisode(Show show, long seasonNumber, long episodeNumber, long absoluteNumber, Library library)
|
||||||
{
|
{
|
||||||
Episode episode = await GetMetadata(provider => provider.GetEpisode(externalIDs, seasonNumber, episodeNumber, absoluteNumber), library, $"an episode");
|
Episode episode = await GetMetadata(provider => provider.GetEpisode(show, seasonNumber, episodeNumber, absoluteNumber), library, $"an episode");
|
||||||
await thumbnailsManager.Validate(episode);
|
await thumbnailsManager.Validate(episode);
|
||||||
return episode;
|
return episode;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<IEnumerable<People>> GetPeople(string showExternalIDs, Library library)
|
public async Task<IEnumerable<People>> GetPeople(Show show, Library library)
|
||||||
{
|
{
|
||||||
IEnumerable<People> people = await GetMetadata(provider => provider.GetPeople(showExternalIDs), library, $"unknown data");
|
IEnumerable<People> people = await GetMetadata(provider => provider.GetPeople(show), library, $"unknown data");
|
||||||
people = await thumbnailsManager.Validate(people);
|
people = await thumbnailsManager.Validate(people);
|
||||||
return people;
|
return people;
|
||||||
}
|
}
|
||||||
|
@ -1,14 +1,27 @@
|
|||||||
|
using System.Threading.Tasks;
|
||||||
|
using Kyoo.Controllers;
|
||||||
using Microsoft.AspNetCore;
|
using Microsoft.AspNetCore;
|
||||||
using Microsoft.AspNetCore.Hosting;
|
using Microsoft.AspNetCore.Hosting;
|
||||||
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.Hosting;
|
using Microsoft.Extensions.Hosting;
|
||||||
|
|
||||||
namespace Kyoo
|
namespace Kyoo
|
||||||
{
|
{
|
||||||
public class Program
|
public class Program
|
||||||
{
|
{
|
||||||
public static void Main(string[] args)
|
public static async Task Main(string[] args)
|
||||||
{
|
{
|
||||||
CreateWebHostBuilder(args).Build().Run();
|
IWebHost host = CreateWebHostBuilder(args).Build();
|
||||||
|
|
||||||
|
using (IServiceScope serviceScope = host.Services.CreateScope())
|
||||||
|
{
|
||||||
|
IPluginManager pluginManager = serviceScope.ServiceProvider.GetService<IPluginManager>();
|
||||||
|
pluginManager.ReloadPlugins();
|
||||||
|
|
||||||
|
ICrawler crawler = serviceScope.ServiceProvider.GetService<ICrawler>();
|
||||||
|
crawler.Start();
|
||||||
|
}
|
||||||
|
await host.RunAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
|
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
|
||||||
|
@ -32,11 +32,12 @@ namespace Kyoo
|
|||||||
services.AddControllers().AddNewtonsoftJson();
|
services.AddControllers().AddNewtonsoftJson();
|
||||||
services.AddHttpClient();
|
services.AddHttpClient();
|
||||||
|
|
||||||
|
services.AddSingleton<IPluginManager, PluginManager>();
|
||||||
services.AddSingleton<ILibraryManager, LibraryManager>();
|
services.AddSingleton<ILibraryManager, LibraryManager>();
|
||||||
services.AddSingleton<ITranscoder, Transcoder>();
|
services.AddSingleton<ITranscoder, Transcoder>();
|
||||||
services.AddSingleton<ICrawler, Crawler>();
|
|
||||||
services.AddSingleton<IThumbnailsManager, ThumbnailsManager>();
|
services.AddSingleton<IThumbnailsManager, ThumbnailsManager>();
|
||||||
services.AddSingleton<IProviderManager, ProviderManager>();
|
services.AddSingleton<IProviderManager, ProviderManager>();
|
||||||
|
services.AddSingleton<ICrawler, Crawler>();
|
||||||
}
|
}
|
||||||
|
|
||||||
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
|
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
"transmuxTempPath": "/tmp/cached/kyoo/transmux",
|
"transmuxTempPath": "/tmp/cached/kyoo/transmux",
|
||||||
"transcodeTempPath": "/tmp/cached/kyoo/transcode",
|
"transcodeTempPath": "/tmp/cached/kyoo/transcode",
|
||||||
"peoplePath": "/tmp/people",
|
"peoplePath": "/tmp/people",
|
||||||
"plugins": "/tmp/plugins",
|
"plugins": "plugins/",
|
||||||
"regex": "^(\\/(?<Collection>.+?))?\\/.*\\/(?<ShowTitle>.+?) S(?<Season>\\d+)E(?<Episode>\\d+)",
|
"regex": "^(\\/(?<Collection>.+?))?\\/.*\\/(?<ShowTitle>.+?) S(?<Season>\\d+)E(?<Episode>\\d+)",
|
||||||
"absoluteRegex": ".*\\/(?<ShowTitle>.+?) (?<AbsoluteNumber>\\d+)"
|
"absoluteRegex": ".*\\/(?<ShowTitle>.+?) (?<AbsoluteNumber>\\d+)"
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user