mirror of
https://github.com/zoriya/Kyoo.git
synced 2025-06-23 15:30:34 -04:00
Re enabling the metadata provider loader task
This commit is contained in:
parent
4c0179ad4d
commit
7875c72dd9
@ -19,6 +19,12 @@ namespace Kyoo.Models
|
|||||||
/// The URL of the resource on the external provider.
|
/// The URL of the resource on the external provider.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string Link { get; set; }
|
public string Link { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// A shortcut to access the provider of this metadata.
|
||||||
|
/// Unlike the <see cref="Link{T, T2}.Second"/> property, this is serializable.
|
||||||
|
/// </summary>
|
||||||
|
public Provider Provider => Second;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The expression to retrieve the unique ID of a MetadataID. This is an aggregate of the two resources IDs.
|
/// The expression to retrieve the unique ID of a MetadataID. This is an aggregate of the two resources IDs.
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit dcdebad14cbcdf1f9486cb9178e6518d10c0e97f
|
Subproject commit 87783a5bfdd79f21d72bad13da1d96ec8e08cd42
|
@ -115,6 +115,7 @@ namespace Kyoo
|
|||||||
builder.RegisterTask<Housekeeping>();
|
builder.RegisterTask<Housekeeping>();
|
||||||
builder.RegisterTask<RegisterEpisode>();
|
builder.RegisterTask<RegisterEpisode>();
|
||||||
builder.RegisterTask<RegisterSubtitle>();
|
builder.RegisterTask<RegisterSubtitle>();
|
||||||
|
builder.RegisterTask<MetadataProviderLoader>();
|
||||||
|
|
||||||
static bool DatabaseIsPresent(IComponentRegistryBuilder x)
|
static bool DatabaseIsPresent(IComponentRegistryBuilder x)
|
||||||
=> x.IsRegistered(new TypedService(typeof(DatabaseContext)));
|
=> x.IsRegistered(new TypedService(typeof(DatabaseContext)));
|
||||||
|
@ -1,46 +1,75 @@
|
|||||||
// using System;
|
using System;
|
||||||
// using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
// using System.Threading;
|
using System.Threading;
|
||||||
// using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
// using Kyoo.Controllers;
|
using Kyoo.Controllers;
|
||||||
// using Kyoo.Models;
|
using Kyoo.Models.Attributes;
|
||||||
// using Microsoft.Extensions.DependencyInjection;
|
using Kyoo.Models.Exceptions;
|
||||||
//
|
|
||||||
// namespace Kyoo.Tasks
|
namespace Kyoo.Tasks
|
||||||
// {
|
{
|
||||||
// public class MetadataProviderLoader : ITask
|
/// <summary>
|
||||||
// {
|
/// A task that download metadata providers images.
|
||||||
// public string Slug => "reload-metdata";
|
/// </summary>
|
||||||
// public string Name => "Reload Metadata Providers";
|
public class MetadataProviderLoader : ITask
|
||||||
// public string Description => "Add every loaded metadata provider to the database.";
|
{
|
||||||
// public string HelpMessage => null;
|
/// <inheritdoc />
|
||||||
// public bool RunOnStartup => true;
|
public string Slug => "reload-metdata";
|
||||||
// public int Priority => 1000;
|
|
||||||
//
|
/// <inheritdoc />
|
||||||
// public async Task Run(IServiceProvider serviceProvider, CancellationToken cancellationToken, string arguments = null)
|
public string Name => "Reload Metadata Providers";
|
||||||
// {
|
|
||||||
// using IServiceScope serviceScope = serviceProvider.CreateScope();
|
/// <inheritdoc />
|
||||||
// IProviderRepository providers = serviceScope.ServiceProvider.GetService<IProviderRepository>();
|
public string Description => "Add every loaded metadata provider to the database.";
|
||||||
// IThumbnailsManager thumbnails = serviceScope.ServiceProvider.GetService<IThumbnailsManager>();
|
|
||||||
// IPluginManager pluginManager = serviceScope.ServiceProvider.GetService<IPluginManager>();
|
/// <inheritdoc />
|
||||||
//
|
public string HelpMessage => null;
|
||||||
// foreach (IMetadataProvider provider in pluginManager!.GetPlugins<IMetadataProvider>())
|
|
||||||
// {
|
/// <inheritdoc />
|
||||||
// if (string.IsNullOrEmpty(provider.Provider.Slug))
|
public bool RunOnStartup => true;
|
||||||
// throw new ArgumentException($"Empty provider slug (name: {provider.Provider.Name}).");
|
|
||||||
// await providers!.CreateIfNotExists(provider.Provider);
|
/// <inheritdoc />
|
||||||
// await thumbnails!.Validate(provider.Provider);
|
public int Priority => 1000;
|
||||||
// }
|
|
||||||
// }
|
/// <inheritdoc />
|
||||||
//
|
public bool IsHidden => true;
|
||||||
// public Task<IEnumerable<string>> GetPossibleParameters()
|
|
||||||
// {
|
/// <summary>
|
||||||
// return Task.FromResult<IEnumerable<string>>(null);
|
/// The provider repository used to create in-db providers from metadata providers.
|
||||||
// }
|
/// </summary>
|
||||||
//
|
[Injected] public IProviderRepository Providers { private get; set; }
|
||||||
// public int? Progress()
|
/// <summary>
|
||||||
// {
|
/// The thumbnail manager used to download providers logo.
|
||||||
// return null;
|
/// </summary>
|
||||||
// }
|
[Injected] public IThumbnailsManager Thumbnails { private get; set; }
|
||||||
// }
|
/// <summary>
|
||||||
// }
|
/// The list of metadata providers to register.
|
||||||
|
/// </summary>
|
||||||
|
[Injected] public ICollection<IMetadataProvider> MetadataProviders { private get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
public TaskParameters GetParameters()
|
||||||
|
{
|
||||||
|
return new();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
public async Task Run(TaskParameters arguments, IProgress<float> progress, CancellationToken cancellationToken)
|
||||||
|
{
|
||||||
|
float percent = 0;
|
||||||
|
progress.Report(0);
|
||||||
|
|
||||||
|
foreach (IMetadataProvider provider in MetadataProviders)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(provider.Provider.Slug))
|
||||||
|
throw new TaskFailedException($"Empty provider slug (name: {provider.Provider.Name}).");
|
||||||
|
await Providers.CreateIfNotExists(provider.Provider);
|
||||||
|
await Thumbnails.DownloadImages(provider.Provider);
|
||||||
|
percent += 100f / MetadataProviders.Count;
|
||||||
|
progress.Report(percent);
|
||||||
|
}
|
||||||
|
progress.Report(100);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user