mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-04-09 20:02:11 +01:00
stub out mock sync provider
This commit is contained in:
@@ -12,6 +12,7 @@ using MediaBrowser.Controller.Library;
|
||||
using MediaBrowser.Controller.LiveTv;
|
||||
using MediaBrowser.Controller.Persistence;
|
||||
using MediaBrowser.Controller.Providers;
|
||||
using MediaBrowser.Controller.Sync;
|
||||
using MediaBrowser.Model.Drawing;
|
||||
using MediaBrowser.Model.Dto;
|
||||
using MediaBrowser.Model.Entities;
|
||||
@@ -38,8 +39,9 @@ namespace MediaBrowser.Server.Implementations.Dto
|
||||
private readonly IProviderManager _providerManager;
|
||||
|
||||
private readonly Func<IChannelManager> _channelManagerFactory;
|
||||
private readonly ISyncManager _syncManager;
|
||||
|
||||
public DtoService(ILogger logger, ILibraryManager libraryManager, IUserDataManager userDataRepository, IItemRepository itemRepo, IImageProcessor imageProcessor, IServerConfigurationManager config, IFileSystem fileSystem, IProviderManager providerManager, Func<IChannelManager> channelManagerFactory)
|
||||
public DtoService(ILogger logger, ILibraryManager libraryManager, IUserDataManager userDataRepository, IItemRepository itemRepo, IImageProcessor imageProcessor, IServerConfigurationManager config, IFileSystem fileSystem, IProviderManager providerManager, Func<IChannelManager> channelManagerFactory, ISyncManager syncManager)
|
||||
{
|
||||
_logger = logger;
|
||||
_libraryManager = libraryManager;
|
||||
@@ -50,6 +52,7 @@ namespace MediaBrowser.Server.Implementations.Dto
|
||||
_fileSystem = fileSystem;
|
||||
_providerManager = providerManager;
|
||||
_channelManagerFactory = channelManagerFactory;
|
||||
_syncManager = syncManager;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -146,6 +149,11 @@ namespace MediaBrowser.Server.Implementations.Dto
|
||||
|
||||
AttachBasicFields(dto, item, owner, fields);
|
||||
|
||||
if (fields.Contains(ItemFields.SyncInfo))
|
||||
{
|
||||
dto.SupportsSync = _syncManager.SupportsSync(item);
|
||||
}
|
||||
|
||||
if (fields.Contains(ItemFields.SoundtrackIds))
|
||||
{
|
||||
var hasSoundtracks = item as IHasSoundtracks;
|
||||
|
||||
@@ -158,7 +158,7 @@ namespace MediaBrowser.Server.Implementations.HttpServer
|
||||
HostContext.Config.HandlerFactoryPath = ListenerRequest.GetHandlerPathIfAny(UrlPrefixes.First());
|
||||
|
||||
_listener = NativeWebSocket.IsSupported
|
||||
? _listener = new WebSocketSharpListener(_logger, _threadPoolManager)
|
||||
? _listener = new HttpListenerServer(_logger, _threadPoolManager)
|
||||
: _listener = new WebSocketSharpListener(_logger, _threadPoolManager);
|
||||
|
||||
_listener.WebSocketHandler = WebSocketHandler;
|
||||
|
||||
@@ -272,6 +272,7 @@
|
||||
<Compile Include="Sorting\VideoBitRateComparer.cs" />
|
||||
<Compile Include="Sync\AppSyncProvider.cs" />
|
||||
<Compile Include="Sync\CloudSyncProvider.cs" />
|
||||
<Compile Include="Sync\MockSyncProvider.cs" />
|
||||
<Compile Include="Sync\SyncManager.cs" />
|
||||
<Compile Include="Themes\AppThemeManager.cs" />
|
||||
<Compile Include="Udp\UdpMessageReceivedEventArgs.cs" />
|
||||
|
||||
@@ -10,12 +10,12 @@ namespace MediaBrowser.Server.Implementations.Sync
|
||||
{
|
||||
public IEnumerable<SyncTarget> GetSyncTargets()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
return new List<SyncTarget>();
|
||||
}
|
||||
|
||||
public DeviceProfile GetDeviceProfile(SyncTarget target)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
return new DeviceProfile();
|
||||
}
|
||||
|
||||
public string Name
|
||||
|
||||
@@ -19,12 +19,12 @@ namespace MediaBrowser.Server.Implementations.Sync
|
||||
|
||||
public IEnumerable<SyncTarget> GetSyncTargets()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
return new List<SyncTarget>();
|
||||
}
|
||||
|
||||
public DeviceProfile GetDeviceProfile(SyncTarget target)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
return new DeviceProfile();
|
||||
}
|
||||
|
||||
public string Name
|
||||
|
||||
33
MediaBrowser.Server.Implementations/Sync/MockSyncProvider.cs
Normal file
33
MediaBrowser.Server.Implementations/Sync/MockSyncProvider.cs
Normal file
@@ -0,0 +1,33 @@
|
||||
using MediaBrowser.Common.Extensions;
|
||||
using MediaBrowser.Controller.Sync;
|
||||
using MediaBrowser.Model.Dlna;
|
||||
using MediaBrowser.Model.Sync;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace MediaBrowser.Server.Implementations.Sync
|
||||
{
|
||||
public class MockSyncProvider : ISyncProvider
|
||||
{
|
||||
public string Name
|
||||
{
|
||||
get { return "Dummy Sync"; }
|
||||
}
|
||||
|
||||
public IEnumerable<SyncTarget> GetSyncTargets()
|
||||
{
|
||||
return new List<SyncTarget>
|
||||
{
|
||||
new SyncTarget
|
||||
{
|
||||
Id = "mock".GetMD5().ToString("N"),
|
||||
Name = "Mock Sync"
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public DeviceProfile GetDeviceProfile(SyncTarget target)
|
||||
{
|
||||
return new DeviceProfile();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,7 @@
|
||||
using MediaBrowser.Controller.Sync;
|
||||
using MediaBrowser.Common.Extensions;
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Controller.Sync;
|
||||
using MediaBrowser.Model.Entities;
|
||||
using MediaBrowser.Model.Querying;
|
||||
using MediaBrowser.Model.Sync;
|
||||
using System;
|
||||
@@ -10,7 +13,7 @@ namespace MediaBrowser.Server.Implementations.Sync
|
||||
{
|
||||
public class SyncManager : ISyncManager
|
||||
{
|
||||
private ISyncProvider[] _providers = new ISyncProvider[]{};
|
||||
private ISyncProvider[] _providers = new ISyncProvider[] { };
|
||||
|
||||
public void AddParts(IEnumerable<ISyncProvider> providers)
|
||||
{
|
||||
@@ -22,11 +25,6 @@ namespace MediaBrowser.Server.Implementations.Sync
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public Task<SyncSchedule> CreateSchedule(SyncScheduleRequest request)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public QueryResult<SyncJob> GetJobs(SyncJobQuery query)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
@@ -57,9 +55,70 @@ namespace MediaBrowser.Server.Implementations.Sync
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public IEnumerable<SyncTarget> GetSyncTargets()
|
||||
public IEnumerable<SyncTarget> GetSyncTargets(string userId)
|
||||
{
|
||||
return _providers.SelectMany(i => i.GetSyncTargets());
|
||||
return _providers
|
||||
.SelectMany(GetSyncTargets)
|
||||
.OrderBy(i => i.Name);
|
||||
}
|
||||
|
||||
private IEnumerable<SyncTarget> GetSyncTargets(ISyncProvider provider)
|
||||
{
|
||||
var providerId = GetSyncProviderId(provider);
|
||||
|
||||
return provider.GetSyncTargets().Select(i => new SyncTarget
|
||||
{
|
||||
Name = i.Name,
|
||||
Id = providerId + "-" + i.Id
|
||||
});
|
||||
}
|
||||
|
||||
private ISyncProvider GetSyncProvider(SyncTarget target)
|
||||
{
|
||||
var providerId = target.Id.Split(new[] { '-' }, 2).First();
|
||||
|
||||
return _providers.First(i => string.Equals(providerId, GetSyncProviderId(i)));
|
||||
}
|
||||
|
||||
private string GetSyncProviderId(ISyncProvider provider)
|
||||
{
|
||||
return (provider.GetType().Name + provider.Name).GetMD5().ToString("N");
|
||||
}
|
||||
|
||||
public bool SupportsSync(BaseItem item)
|
||||
{
|
||||
if (item.LocationType == LocationType.Virtual)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (string.Equals(item.MediaType, MediaType.Audio, StringComparison.OrdinalIgnoreCase) ||
|
||||
string.Equals(item.MediaType, MediaType.Video, StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
if (item.RunTimeTicks.HasValue)
|
||||
{
|
||||
var video = item as Video;
|
||||
|
||||
if (video != null)
|
||||
{
|
||||
if (video.VideoType != VideoType.VideoFile)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (video.IsMultiPart)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user