From aef805efb9e1655978bb1a71990f1060a3dcf768 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Tue, 25 Feb 2014 10:40:16 -0500 Subject: fix directory not found error in episode organization --- MediaBrowser.Controller/Entities/Folder.cs | 6 ++++-- MediaBrowser.Controller/Entities/TV/Season.cs | 11 ++++++++++- MediaBrowser.Controller/Providers/BaseItemXmlParser.cs | 16 ++++++++++++++++ MediaBrowser.Controller/Providers/ItemLookupInfo.cs | 7 ++++++- 4 files changed, 36 insertions(+), 4 deletions(-) (limited to 'MediaBrowser.Controller') diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs index e682a0d2f..954b36bf2 100644 --- a/MediaBrowser.Controller/Entities/Folder.cs +++ b/MediaBrowser.Controller/Entities/Folder.cs @@ -940,7 +940,7 @@ namespace MediaBrowser.Controller.Entities // First get using the cached Id if (info.ItemId != Guid.Empty) { - item = LibraryManager.GetItemById(info.ItemId) as BaseItem; + item = LibraryManager.GetItemById(info.ItemId); } // If still null, search by path @@ -1098,7 +1098,9 @@ namespace MediaBrowser.Controller.Entities return this; } - return RecursiveChildren.FirstOrDefault(i => string.Equals(i.Path, path, StringComparison.OrdinalIgnoreCase) || i.PhysicalLocations.Contains(path, StringComparer.OrdinalIgnoreCase)); + return RecursiveChildren.FirstOrDefault(i => string.Equals(i.Path, path, StringComparison.OrdinalIgnoreCase) || + (!i.IsFolder && !i.IsInMixedFolder && string.Equals(i.ContainingFolderPath, path, StringComparison.OrdinalIgnoreCase)) || + i.PhysicalLocations.Contains(path, StringComparer.OrdinalIgnoreCase)); } public override bool IsPlayed(User user) diff --git a/MediaBrowser.Controller/Entities/TV/Season.cs b/MediaBrowser.Controller/Entities/TV/Season.cs index 2847c397e..4fadd8f6e 100644 --- a/MediaBrowser.Controller/Entities/TV/Season.cs +++ b/MediaBrowser.Controller/Entities/TV/Season.cs @@ -250,7 +250,16 @@ namespace MediaBrowser.Controller.Entities.TV /// SeasonInfo. public SeasonInfo GetLookupInfo() { - return GetItemLookupInfo(); + var id = GetItemLookupInfo(); + + var series = Series; + + if (series != null) + { + id.SeriesProviderIds = series.ProviderIds; + } + + return id; } /// diff --git a/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs b/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs index ada0aa6e2..0163dec20 100644 --- a/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs +++ b/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs @@ -683,6 +683,22 @@ namespace MediaBrowser.Controller.Providers } break; } + case "MusicbrainzId": + { + var mbz = reader.ReadElementContentAsString(); + if (!string.IsNullOrWhiteSpace(mbz)) + { + if (item is MusicAlbum) + { + item.SetProviderId(MetadataProviders.MusicBrainzAlbum, mbz); + } + else if (item is MusicArtist) + { + item.SetProviderId(MetadataProviders.MusicBrainzArtist, mbz); + } + } + break; + } case "MusicBrainzAlbumId": { var mbz = reader.ReadElementContentAsString(); diff --git a/MediaBrowser.Controller/Providers/ItemLookupInfo.cs b/MediaBrowser.Controller/Providers/ItemLookupInfo.cs index 665da28f4..c2409715a 100644 --- a/MediaBrowser.Controller/Providers/ItemLookupInfo.cs +++ b/MediaBrowser.Controller/Providers/ItemLookupInfo.cs @@ -152,6 +152,11 @@ namespace MediaBrowser.Controller.Providers public class SeasonInfo : ItemLookupInfo { - + public Dictionary SeriesProviderIds { get; set; } + + public SeasonInfo() + { + SeriesProviderIds = new Dictionary(StringComparer.OrdinalIgnoreCase); + } } } -- cgit v1.2.3