diff --git a/MediaBrowser.Common/Extensions/BaseExtensions.cs b/MediaBrowser.Common/Extensions/BaseExtensions.cs
index 4e2a475d90..0b63d7b31c 100644
--- a/MediaBrowser.Common/Extensions/BaseExtensions.cs
+++ b/MediaBrowser.Common/Extensions/BaseExtensions.cs
@@ -40,17 +40,36 @@ namespace MediaBrowser.Common.Extensions
/// Gets the MB id.
///
/// The STR.
- /// A type.
+ /// The type.
/// Guid.
- /// aType
- public static Guid GetMBId(this string str, Type aType)
+ public static Guid GetMBId(this string str, Type type)
{
- if (aType == null)
+ return str.GetMBId(type, false);
+ }
+
+ ///
+ /// Gets the MB id.
+ ///
+ /// The STR.
+ /// The type.
+ /// if set to true [is in mixed folder].
+ /// Guid.
+ /// type
+ public static Guid GetMBId(this string str, Type type, bool isInMixedFolder)
+ {
+ if (type == null)
{
- throw new ArgumentNullException("aType");
+ throw new ArgumentNullException("type");
}
-
- return (aType.FullName + str.ToLower()).GetMD5();
+
+ var key = type.FullName + str.ToLower();
+
+ if (isInMixedFolder)
+ {
+ key += "InMixedFolder";
+ }
+
+ return key.GetMD5();
}
///
diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs
index 3eda96d3d2..a27f1fdd08 100644
--- a/MediaBrowser.Controller/Entities/Folder.cs
+++ b/MediaBrowser.Controller/Entities/Folder.cs
@@ -101,7 +101,7 @@ namespace MediaBrowser.Controller.Entities
if (item.Id == Guid.Empty)
{
- item.Id = item.Path.GetMBId(item.GetType());
+ item.Id = item.Path.GetMBId(item.GetType(), item.IsInMixedFolder);
}
if (item.DateCreated == DateTime.MinValue)
diff --git a/MediaBrowser.Providers/ImageFromMediaLocationProvider.cs b/MediaBrowser.Providers/ImageFromMediaLocationProvider.cs
index 9c991a496f..38030cffa4 100644
--- a/MediaBrowser.Providers/ImageFromMediaLocationProvider.cs
+++ b/MediaBrowser.Providers/ImageFromMediaLocationProvider.cs
@@ -46,7 +46,7 @@ namespace MediaBrowser.Providers
return true;
}
- return item.IsInMixedFolder && !(item is Episode);
+ return item.IsInMixedFolder && item.Parent != null && !(item is Episode);
}
return false;
}
@@ -118,6 +118,10 @@ namespace MediaBrowser.Providers
{
if (item.IsInMixedFolder)
{
+ if (item.Parent == null)
+ {
+ return item.ResolveArgs;
+ }
return item.Parent.ResolveArgs;
}
diff --git a/MediaBrowser.Server.Implementations/Library/ResolverHelper.cs b/MediaBrowser.Server.Implementations/Library/ResolverHelper.cs
index 8b98a69447..1605db5a7b 100644
--- a/MediaBrowser.Server.Implementations/Library/ResolverHelper.cs
+++ b/MediaBrowser.Server.Implementations/Library/ResolverHelper.cs
@@ -34,7 +34,7 @@ namespace MediaBrowser.Server.Implementations.Library
item.Parent = args.Parent;
}
- item.Id = item.Path.GetMBId(item.GetType());
+ item.Id = item.Path.GetMBId(item.GetType(), item.IsInMixedFolder);
// If the resolver didn't specify this
if (string.IsNullOrEmpty(item.DisplayMediaType))
diff --git a/MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs b/MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs
index 94b79f0a11..d62baddecb 100644
--- a/MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs
+++ b/MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs
@@ -244,6 +244,7 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Movies
if (item != null)
{
+ item.IsInMixedFolder = false;
movies.Add(item);
}
}