aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2014-02-25 10:40:16 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2014-02-25 10:40:16 -0500
commitaef805efb9e1655978bb1a71990f1060a3dcf768 (patch)
treeb1ef969377e2337d17cc2feb9a83ea774b12bb63 /MediaBrowser.Controller
parent7497fe9554482fcdf78ed49c436edba0b20c8350 (diff)
fix directory not found error in episode organization
Diffstat (limited to 'MediaBrowser.Controller')
-rw-r--r--MediaBrowser.Controller/Entities/Folder.cs6
-rw-r--r--MediaBrowser.Controller/Entities/TV/Season.cs11
-rw-r--r--MediaBrowser.Controller/Providers/BaseItemXmlParser.cs16
-rw-r--r--MediaBrowser.Controller/Providers/ItemLookupInfo.cs7
4 files changed, 36 insertions, 4 deletions
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
/// <returns>SeasonInfo.</returns>
public SeasonInfo GetLookupInfo()
{
- return GetItemLookupInfo<SeasonInfo>();
+ var id = GetItemLookupInfo<SeasonInfo>();
+
+ var series = Series;
+
+ if (series != null)
+ {
+ id.SeriesProviderIds = series.ProviderIds;
+ }
+
+ return id;
}
/// <summary>
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<string, string> SeriesProviderIds { get; set; }
+
+ public SeasonInfo()
+ {
+ SeriesProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
+ }
}
}