aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs
diff options
context:
space:
mode:
authorLuke <luke.pulverenti@gmail.com>2016-10-31 13:23:01 -0400
committerGitHub <noreply@github.com>2016-10-31 13:23:01 -0400
commite2e70c35399886164d0593f5c5ab73c52a0db4f0 (patch)
tree20e44bb95e997def63d153e189c96cbe4fa095cd /MediaBrowser.Server.Implementations/Channels/ChannelManager.cs
parentb2c7f3a1d316c3d9f207da6251fa05edae1869af (diff)
parent8b7a8ab3963b1a55bc194767cc834c8cf43836a7 (diff)
Merge pull request #2262 from MediaBrowser/dev
Dev
Diffstat (limited to 'MediaBrowser.Server.Implementations/Channels/ChannelManager.cs')
-rw-r--r--MediaBrowser.Server.Implementations/Channels/ChannelManager.cs41
1 files changed, 39 insertions, 2 deletions
diff --git a/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs b/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs
index ffb9c96e7..300973ce1 100644
--- a/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs
+++ b/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs
@@ -252,6 +252,42 @@ namespace MediaBrowser.Server.Implementations.Channels
return item;
}
+ private List<ChannelMediaInfo> GetSavedMediaSources(BaseItem item)
+ {
+ var path = Path.Combine(item.GetInternalMetadataPath(), "channelmediasources.json");
+
+ try
+ {
+ return _jsonSerializer.DeserializeFromFile<List<ChannelMediaInfo>>(path) ?? new List<ChannelMediaInfo>();
+ }
+ catch
+ {
+ return new List<ChannelMediaInfo>();
+ }
+ }
+
+ private void SaveMediaSources(BaseItem item, List<ChannelMediaInfo> mediaSources)
+ {
+ var path = Path.Combine(item.GetInternalMetadataPath(), "channelmediasources.json");
+
+ if (mediaSources == null || mediaSources.Count == 0)
+ {
+ try
+ {
+ _fileSystem.DeleteFile(path);
+ }
+ catch
+ {
+
+ }
+ return;
+ }
+
+ _fileSystem.CreateDirectory(Path.GetDirectoryName(path));
+
+ _jsonSerializer.SerializeToFile(mediaSources, path);
+ }
+
public async Task<IEnumerable<MediaSourceInfo>> GetStaticMediaSources(BaseItem item, bool includeCachedVersions, CancellationToken cancellationToken)
{
IEnumerable<ChannelMediaInfo> results = new List<ChannelMediaInfo>();
@@ -263,7 +299,7 @@ namespace MediaBrowser.Server.Implementations.Channels
var audio = item as Audio;
if (audio != null)
{
- results = audio.ChannelMediaSources ?? new List<ChannelMediaInfo>();
+ results = audio.ChannelMediaSources ?? GetSavedMediaSources(audio);
}
var sources = SortMediaInfoResults(results)
@@ -1385,7 +1421,6 @@ namespace MediaBrowser.Server.Implementations.Channels
if (channelAudioItem != null)
{
channelAudioItem.ExtraType = info.ExtraType;
- channelAudioItem.ChannelMediaSources = info.MediaSources;
var mediaSource = info.MediaSources.FirstOrDefault();
item.Path = mediaSource == null ? null : mediaSource.Path;
@@ -1426,6 +1461,8 @@ namespace MediaBrowser.Server.Implementations.Channels
await item.UpdateToRepository(ItemUpdateType.None, cancellationToken).ConfigureAwait(false);
}
+ SaveMediaSources(item, info.MediaSources);
+
return item;
}