mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-04-21 17:44:43 +01:00
add perfect match indicator to subtitle editor
This commit is contained in:
@@ -29,13 +29,15 @@ using MediaBrowser.Controller.Entities.Audio;
|
||||
using MediaBrowser.Controller.Entities.Movies;
|
||||
using MediaBrowser.Controller.Entities.TV;
|
||||
using MediaBrowser.Controller.IO;
|
||||
using MediaBrowser.Controller.Plugins;
|
||||
using MediaBrowser.Model.Globalization;
|
||||
using MediaBrowser.Model.Tasks;
|
||||
|
||||
namespace Emby.Server.Implementations.Channels
|
||||
{
|
||||
public class ChannelManager : IChannelManager
|
||||
{
|
||||
private IChannel[] _channels;
|
||||
internal IChannel[] Channels { get; private set; }
|
||||
|
||||
private readonly IUserManager _userManager;
|
||||
private readonly IUserDataManager _userDataManager;
|
||||
@@ -76,12 +78,12 @@ namespace Emby.Server.Implementations.Channels
|
||||
|
||||
public void AddParts(IEnumerable<IChannel> channels)
|
||||
{
|
||||
_channels = channels.ToArray();
|
||||
Channels = channels.ToArray();
|
||||
}
|
||||
|
||||
private IEnumerable<IChannel> GetAllChannels()
|
||||
{
|
||||
return _channels
|
||||
return Channels
|
||||
.OrderBy(i => i.Name);
|
||||
}
|
||||
|
||||
@@ -1559,4 +1561,76 @@ namespace Emby.Server.Implementations.Channels
|
||||
return await _libraryManager.GetNamedView(name, "channels", "zz_" + name, cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
}
|
||||
|
||||
public class ChannelsEntryPoint : IServerEntryPoint
|
||||
{
|
||||
private readonly IServerConfigurationManager _config;
|
||||
private readonly IChannelManager _channelManager;
|
||||
private readonly ITaskManager _taskManager;
|
||||
private readonly IFileSystem _fileSystem;
|
||||
|
||||
public ChannelsEntryPoint(IChannelManager channelManager, ITaskManager taskManager, IServerConfigurationManager config, IFileSystem fileSystem)
|
||||
{
|
||||
_channelManager = channelManager;
|
||||
_taskManager = taskManager;
|
||||
_config = config;
|
||||
_fileSystem = fileSystem;
|
||||
}
|
||||
|
||||
public void Run()
|
||||
{
|
||||
var channels = ((ChannelManager)_channelManager).Channels
|
||||
.Select(i => i.GetType().FullName.GetMD5().ToString("N"))
|
||||
.ToArray();
|
||||
|
||||
var channelsString = string.Join(",", channels);
|
||||
|
||||
if (!string.Equals(channelsString, GetSavedLastChannels(), StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
_taskManager.QueueIfNotRunning<RefreshChannelsScheduledTask>();
|
||||
|
||||
SetSavedLastChannels(channelsString);
|
||||
}
|
||||
}
|
||||
|
||||
private string DataPath
|
||||
{
|
||||
get { return Path.Combine(_config.ApplicationPaths.DataPath, "channels.txt"); }
|
||||
}
|
||||
|
||||
private string GetSavedLastChannels()
|
||||
{
|
||||
try
|
||||
{
|
||||
return _fileSystem.ReadAllText(DataPath);
|
||||
}
|
||||
catch
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
private void SetSavedLastChannels(string value)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(value))
|
||||
{
|
||||
_fileSystem.DeleteFile(DataPath);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
_fileSystem.WriteAllText(DataPath, value);
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -56,24 +56,9 @@ namespace Emby.Server.Implementations.Data
|
||||
var rootChildren = _libraryManager.RootFolder.Children.ToList();
|
||||
rootChildren = _libraryManager.GetUserRootFolder().Children.ToList();
|
||||
|
||||
var innerProgress = new ActionableProgress<double>();
|
||||
innerProgress.RegisterAction(p =>
|
||||
{
|
||||
double newPercentCommplete = .45 * p;
|
||||
progress.Report(newPercentCommplete);
|
||||
});
|
||||
await CleanDeadItems(cancellationToken, innerProgress).ConfigureAwait(false);
|
||||
progress.Report(45);
|
||||
await CleanDeadItems(cancellationToken, progress).ConfigureAwait(false);
|
||||
|
||||
innerProgress = new ActionableProgress<double>();
|
||||
innerProgress.RegisterAction(p =>
|
||||
{
|
||||
double newPercentCommplete = 45 + .55 * p;
|
||||
progress.Report(newPercentCommplete);
|
||||
});
|
||||
|
||||
await _itemRepo.UpdateInheritedValues(cancellationToken).ConfigureAwait(false);
|
||||
progress.Report(100);
|
||||
//await _itemRepo.UpdateInheritedValues(cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
private async Task CleanDeadItems(CancellationToken cancellationToken, IProgress<double> progress)
|
||||
|
||||
Reference in New Issue
Block a user