sync updates

pull/702/head
Luke Pulverenti 9 years ago
parent daf2c28eb7
commit 19ecd450b8

@ -79,6 +79,12 @@ namespace MediaBrowser.Common.Implementations.ScheduledTasks
QueueScheduledTask<T>(options);
}
public void CancelIfRunningAndQueue<T>()
where T : IScheduledTask
{
CancelIfRunningAndQueue<T>(new TaskExecutionOptions());
}
/// <summary>
/// Cancels if running
/// </summary>
@ -103,6 +109,12 @@ namespace MediaBrowser.Common.Implementations.ScheduledTasks
QueueScheduledTask(scheduledTask, options);
}
public void QueueScheduledTask<T>()
where T : IScheduledTask
{
QueueScheduledTask<T>(new TaskExecutionOptions());
}
/// <summary>
/// Queues the scheduled task.
/// </summary>

@ -59,6 +59,11 @@ namespace MediaBrowser.Common.Implementations.Serialization
}
}
private Stream OpenFile(string path)
{
return new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read);
}
/// <summary>
/// Deserializes from file.
/// </summary>
@ -78,7 +83,7 @@ namespace MediaBrowser.Common.Implementations.Serialization
throw new ArgumentNullException("file");
}
using (Stream stream = File.OpenRead(file))
using (Stream stream = OpenFile(file))
{
return DeserializeFromStream(stream, type);
}
@ -99,7 +104,7 @@ namespace MediaBrowser.Common.Implementations.Serialization
throw new ArgumentNullException("file");
}
using (Stream stream = File.OpenRead(file))
using (Stream stream = OpenFile(file))
{
return DeserializeFromStream<T>(stream);
}

@ -18,7 +18,14 @@ namespace MediaBrowser.Common.ScheduledTasks
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="options">Task options.</param>
void CancelIfRunningAndQueue<T>(TaskExecutionOptions options = null)
void CancelIfRunningAndQueue<T>(TaskExecutionOptions options)
where T : IScheduledTask;
/// <summary>
/// Cancels if running and queue.
/// </summary>
/// <typeparam name="T"></typeparam>
void CancelIfRunningAndQueue<T>()
where T : IScheduledTask;
/// <summary>
@ -33,7 +40,14 @@ namespace MediaBrowser.Common.ScheduledTasks
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="options">Task options.</param>
void QueueScheduledTask<T>(TaskExecutionOptions options = null)
void QueueScheduledTask<T>(TaskExecutionOptions options)
where T : IScheduledTask;
/// <summary>
/// Queues the scheduled task.
/// </summary>
/// <typeparam name="T"></typeparam>
void QueueScheduledTask<T>()
where T : IScheduledTask;
/// <summary>

@ -308,12 +308,13 @@
<Compile Include="Sync\IHasSyncProfile.cs" />
<Compile Include="Sync\MediaSync.cs" />
<Compile Include="Sync\MultiProviderSync.cs" />
<Compile Include="Sync\ServerSyncScheduledTask.cs" />
<Compile Include="Sync\SyncRegistrationInfo.cs" />
<Compile Include="Sync\SyncConfig.cs" />
<Compile Include="Sync\SyncJobProcessor.cs" />
<Compile Include="Sync\SyncManager.cs" />
<Compile Include="Sync\SyncRepository.cs" />
<Compile Include="Sync\SyncScheduledTask.cs" />
<Compile Include="Sync\SyncConvertScheduledTask.cs" />
<Compile Include="Themes\AppThemeManager.cs" />
<Compile Include="TV\TVSeriesManager.cs" />
<Compile Include="Udp\UdpMessageReceivedEventArgs.cs" />

@ -0,0 +1,81 @@
using MediaBrowser.Common.IO;
using MediaBrowser.Common.ScheduledTasks;
using MediaBrowser.Controller;
using MediaBrowser.Controller.Sync;
using MediaBrowser.Model.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
namespace MediaBrowser.Server.Implementations.Sync
{
class ServerSyncScheduledTask : IScheduledTask, IConfigurableScheduledTask, IHasKey
{
private readonly ISyncManager _syncManager;
private readonly ILogger _logger;
private readonly IFileSystem _fileSystem;
private readonly IServerApplicationHost _appHost;
public ServerSyncScheduledTask(ISyncManager syncManager, ILogger logger, IFileSystem fileSystem, IServerApplicationHost appHost)
{
_syncManager = syncManager;
_logger = logger;
_fileSystem = fileSystem;
_appHost = appHost;
}
public string Name
{
get { return "Cloud & Folder Sync"; }
}
public string Description
{
get { return "Sync media to the cloud"; }
}
public string Category
{
get
{
return "Sync";
}
}
public Task Execute(CancellationToken cancellationToken, IProgress<double> progress)
{
return new MultiProviderSync(_syncManager, _appHost, _logger, _fileSystem)
.Sync(ServerSyncProviders, progress, cancellationToken);
}
public IEnumerable<IServerSyncProvider> ServerSyncProviders
{
get { return ((SyncManager)_syncManager).ServerSyncProviders; }
}
public IEnumerable<ITaskTrigger> GetDefaultTriggers()
{
return new ITaskTrigger[]
{
new IntervalTrigger { Interval = TimeSpan.FromHours(6) }
};
}
public bool IsHidden
{
get { return !IsEnabled; }
}
public bool IsEnabled
{
get { return ServerSyncProviders.Any(); }
}
public string Key
{
get { return "ServerSync"; }
}
}
}

@ -13,7 +13,7 @@ using System.Threading.Tasks;
namespace MediaBrowser.Server.Implementations.Sync
{
public class SyncScheduledTask : IScheduledTask, IConfigurableScheduledTask, IHasKey
public class SyncConvertScheduledTask : IScheduledTask, IConfigurableScheduledTask, IHasKey
{
private readonly ILibraryManager _libraryManager;
private readonly ISyncRepository _syncRepo;
@ -26,7 +26,7 @@ namespace MediaBrowser.Server.Implementations.Sync
private readonly IConfigurationManager _config;
private readonly IFileSystem _fileSystem;
public SyncScheduledTask(ILibraryManager libraryManager, ISyncRepository syncRepo, ISyncManager syncManager, ILogger logger, IUserManager userManager, ITVSeriesManager tvSeriesManager, IMediaEncoder mediaEncoder, ISubtitleEncoder subtitleEncoder, IConfigurationManager config, IFileSystem fileSystem)
public SyncConvertScheduledTask(ILibraryManager libraryManager, ISyncRepository syncRepo, ISyncManager syncManager, ILogger logger, IUserManager userManager, ITVSeriesManager tvSeriesManager, IMediaEncoder mediaEncoder, ISubtitleEncoder subtitleEncoder, IConfigurationManager config, IFileSystem fileSystem)
{
_libraryManager = libraryManager;
_syncRepo = syncRepo;

@ -79,6 +79,11 @@ namespace MediaBrowser.Server.Implementations.Sync
_providers = providers.ToArray();
}
public IEnumerable<IServerSyncProvider> ServerSyncProviders
{
get { return _providers.OfType<IServerSyncProvider>(); }
}
public async Task<SyncJobCreationResult> CreateJob(SyncJobRequest request)
{
var processor = GetSyncJobProcessor();
@ -438,8 +443,9 @@ namespace MediaBrowser.Server.Implementations.Sync
return target.Id;
}
var providerId = GetSyncProviderId(provider);
return (providerId + "-" + target.Id).GetMD5().ToString("N");
return target.Id;
//var providerId = GetSyncProviderId(provider);
//return (providerId + "-" + target.Id).GetMD5().ToString("N");
}
private string GetSyncProviderId(ISyncProvider provider)

Loading…
Cancel
Save