aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Implementations/EntryPoints/RefreshUsersMetadata.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Emby.Server.Implementations/EntryPoints/RefreshUsersMetadata.cs')
-rw-r--r--Emby.Server.Implementations/EntryPoints/RefreshUsersMetadata.cs61
1 files changed, 47 insertions, 14 deletions
diff --git a/Emby.Server.Implementations/EntryPoints/RefreshUsersMetadata.cs b/Emby.Server.Implementations/EntryPoints/RefreshUsersMetadata.cs
index 77de849a1..4c16b1d39 100644
--- a/Emby.Server.Implementations/EntryPoints/RefreshUsersMetadata.cs
+++ b/Emby.Server.Implementations/EntryPoints/RefreshUsersMetadata.cs
@@ -1,41 +1,74 @@
-using MediaBrowser.Controller.Library;
-using MediaBrowser.Controller.Plugins;
+using System;
+using MediaBrowser.Controller.Library;
using System.Threading;
+using MediaBrowser.Model.Tasks;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using MediaBrowser.Controller.Providers;
+using MediaBrowser.Model.IO;
namespace Emby.Server.Implementations.EntryPoints
{
/// <summary>
/// Class RefreshUsersMetadata
/// </summary>
- public class RefreshUsersMetadata : IServerEntryPoint
+ public class RefreshUsersMetadata : IScheduledTask, IConfigurableScheduledTask
{
/// <summary>
/// The _user manager
/// </summary>
private readonly IUserManager _userManager;
+ private IFileSystem _fileSystem;
+
+ public string Name => "Refresh Users";
+
+ public string Key => "RefreshUsers";
+
+ public string Description => "Refresh user infos";
+
+ public string Category
+ {
+ get { return "Library"; }
+ }
+
+ public bool IsHidden => true;
+
+ public bool IsEnabled => true;
+
+ public bool IsLogged => true;
/// <summary>
/// Initializes a new instance of the <see cref="RefreshUsersMetadata" /> class.
/// </summary>
- /// <param name="userManager">The user manager.</param>
- public RefreshUsersMetadata(IUserManager userManager)
+ public RefreshUsersMetadata(IUserManager userManager, IFileSystem fileSystem)
{
_userManager = userManager;
+ _fileSystem = fileSystem;
}
- /// <summary>
- /// Runs this instance.
- /// </summary>
- public async void Run()
+ public async Task Execute(CancellationToken cancellationToken, IProgress<double> progress)
{
- await _userManager.RefreshUsersMetadata(CancellationToken.None).ConfigureAwait(false);
+ var users = _userManager.Users.ToList();
+
+ foreach (var user in users)
+ {
+ cancellationToken.ThrowIfCancellationRequested();
+
+ await user.RefreshMetadata(new MetadataRefreshOptions(_fileSystem), cancellationToken).ConfigureAwait(false);
+ }
}
- /// <summary>
- /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
- /// </summary>
- public void Dispose()
+ public IEnumerable<TaskTriggerInfo> GetDefaultTriggers()
{
+ return new List<TaskTriggerInfo>
+ {
+ new TaskTriggerInfo
+ {
+ IntervalTicks = TimeSpan.FromDays(1).Ticks,
+ Type = TaskTriggerInfo.TriggerInterval
+ }
+ };
}
}
}