add perfect match indicator to subtitle editor

This commit is contained in:
Luke Pulverenti
2017-06-30 15:58:53 -04:00
parent dcaf8356e6
commit 1f96841e04
6 changed files with 89 additions and 30 deletions

View File

@@ -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()
{
}
}
}

View File

@@ -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)