|
@@ -530,6 +530,19 @@ namespace MediaBrowser.Server.Implementations.Channels
|
|
|
return GetChannelFeaturesDto(channel, channelProvider, channelProvider.GetChannelFeatures());
|
|
|
}
|
|
|
|
|
|
+ public bool SupportsSync(string channelId)
|
|
|
+ {
|
|
|
+ if (string.IsNullOrWhiteSpace(channelId))
|
|
|
+ {
|
|
|
+ throw new ArgumentNullException("channelId");
|
|
|
+ }
|
|
|
+
|
|
|
+ //var channel = GetChannel(channelId);
|
|
|
+ var channelProvider = GetChannelProvider(channelId);
|
|
|
+
|
|
|
+ return channelProvider.GetChannelFeatures().SupportsContentDownloading;
|
|
|
+ }
|
|
|
+
|
|
|
public ChannelFeatures GetChannelFeaturesDto(Channel channel,
|
|
|
IChannel provider,
|
|
|
InternalChannelFeatures features)
|
|
@@ -1450,6 +1463,24 @@ namespace MediaBrowser.Server.Implementations.Channels
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+ internal IChannel GetChannelProvider(string internalChannelId)
|
|
|
+ {
|
|
|
+ if (internalChannelId == null)
|
|
|
+ {
|
|
|
+ throw new ArgumentNullException("internalChannelId");
|
|
|
+ }
|
|
|
+
|
|
|
+ var result = GetAllChannels()
|
|
|
+ .FirstOrDefault(i => string.Equals(GetInternalChannelId(i.Name).ToString("N"), internalChannelId, StringComparison.OrdinalIgnoreCase));
|
|
|
+
|
|
|
+ if (result == null)
|
|
|
+ {
|
|
|
+ throw new ResourceNotFoundException("No channel provider found for channel id " + internalChannelId);
|
|
|
+ }
|
|
|
+
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
private IEnumerable<BaseItem> ApplyFilters(IEnumerable<BaseItem> items, IEnumerable<ItemFilter> filters, User user)
|
|
|
{
|
|
|
foreach (var filter in filters.OrderByDescending(f => (int)f))
|