aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MediaBrowser.Api/UserLibrary/ItemsService.cs10
-rw-r--r--MediaBrowser.Controller/Dto/DtoBuilder.cs2
-rw-r--r--MediaBrowser.Controller/Entities/Video.cs8
-rw-r--r--MediaBrowser.Controller/Resolvers/BaseVideoResolver.cs21
-rw-r--r--MediaBrowser.Model.net35/MediaBrowser.Model.net35.csproj3
-rw-r--r--MediaBrowser.Model/Dto/BaseItemDto.cs6
-rw-r--r--MediaBrowser.Model/Entities/Video3DFormat.cs14
-rw-r--r--MediaBrowser.Model/MediaBrowser.Model.csproj1
-rw-r--r--MediaBrowser.Model/Querying/ItemQuery.cs4
-rw-r--r--MediaBrowser.Providers/Savers/FolderXmlSaver.cs20
-rw-r--r--MediaBrowser.Server.Implementations/Library/ResolverHelper.cs7
-rw-r--r--Nuget/MediaBrowser.Common.Internal.nuspec4
-rw-r--r--Nuget/MediaBrowser.Common.nuspec2
-rw-r--r--Nuget/MediaBrowser.Server.Core.nuspec4
14 files changed, 86 insertions, 20 deletions
diff --git a/MediaBrowser.Api/UserLibrary/ItemsService.cs b/MediaBrowser.Api/UserLibrary/ItemsService.cs
index b96b94823..68436b6f1 100644
--- a/MediaBrowser.Api/UserLibrary/ItemsService.cs
+++ b/MediaBrowser.Api/UserLibrary/ItemsService.cs
@@ -117,8 +117,8 @@ namespace MediaBrowser.Api.UserLibrary
/// Gets or sets the video formats.
/// </summary>
/// <value>The video formats.</value>
- [ApiMember(Name = "VideoFormats", Description = "Optional filter by VideoFormat (Standard, Digital3D, Sbs3D). Allows multiple, comma delimeted.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET", AllowMultiple = true)]
- public string VideoFormats { get; set; }
+ [ApiMember(Name = "Is3D", Description = "Optional filter by items that are 3D, or not.", IsRequired = false, DataType = "bool", ParameterType = "query", Verb = "GET")]
+ public bool? Is3D { get; set; }
/// <summary>
/// Gets or sets the series status.
@@ -535,11 +535,9 @@ namespace MediaBrowser.Api.UserLibrary
}
// Filter by VideoFormat
- if (!string.IsNullOrEmpty(request.VideoFormats))
+ if (request.Is3D.HasValue)
{
- var formats = request.VideoFormats.Split(',');
-
- items = items.OfType<Video>().Where(i => formats.Contains(i.VideoFormat.ToString(), StringComparer.OrdinalIgnoreCase));
+ items = items.OfType<Video>().Where(i => request.Is3D.Value == i.Video3DFormat.HasValue);
}
// Filter by VideoType
diff --git a/MediaBrowser.Controller/Dto/DtoBuilder.cs b/MediaBrowser.Controller/Dto/DtoBuilder.cs
index 2bd338431..77559958a 100644
--- a/MediaBrowser.Controller/Dto/DtoBuilder.cs
+++ b/MediaBrowser.Controller/Dto/DtoBuilder.cs
@@ -449,7 +449,7 @@ namespace MediaBrowser.Controller.Dto
if (video != null)
{
dto.VideoType = video.VideoType;
- dto.VideoFormat = video.VideoFormat;
+ dto.Video3DFormat = video.Video3DFormat;
dto.IsoType = video.IsoType;
dto.PartCount = video.AdditionalPartIds.Count + 1;
diff --git a/MediaBrowser.Controller/Entities/Video.cs b/MediaBrowser.Controller/Entities/Video.cs
index 9df29cdfc..1fef52fa2 100644
--- a/MediaBrowser.Controller/Entities/Video.cs
+++ b/MediaBrowser.Controller/Entities/Video.cs
@@ -40,6 +40,12 @@ namespace MediaBrowser.Controller.Entities
public IsoType? IsoType { get; set; }
/// <summary>
+ /// Gets or sets the video3 D format.
+ /// </summary>
+ /// <value>The video3 D format.</value>
+ public Video3DFormat? Video3DFormat { get; set; }
+
+ /// <summary>
/// Gets or sets the format of the video.
/// </summary>
/// <value>The format of the video.</value>
@@ -101,7 +107,7 @@ namespace MediaBrowser.Controller.Entities
[IgnoreDataMember]
public bool Is3D
{
- get { return VideoFormat > 0; }
+ get { return Video3DFormat.HasValue; }
}
/// <summary>
diff --git a/MediaBrowser.Controller/Resolvers/BaseVideoResolver.cs b/MediaBrowser.Controller/Resolvers/BaseVideoResolver.cs
index 3decbc0a4..0ed02c10f 100644
--- a/MediaBrowser.Controller/Resolvers/BaseVideoResolver.cs
+++ b/MediaBrowser.Controller/Resolvers/BaseVideoResolver.cs
@@ -62,7 +62,26 @@ namespace MediaBrowser.Controller.Resolvers
{
base.SetInitialItemValues(item, args);
- item.VideoFormat = item.Path.IndexOf("[3d]", StringComparison.OrdinalIgnoreCase) != -1 ? VideoFormat.Digital3D : item.Path.IndexOf("[sbs3d]", StringComparison.OrdinalIgnoreCase) != -1 ? VideoFormat.Sbs3D : VideoFormat.Standard;
+ if (item.Path.IndexOf("[3d]", StringComparison.OrdinalIgnoreCase) != -1 || item.Path.IndexOf("[sbs3d]", StringComparison.OrdinalIgnoreCase) != -1)
+ {
+ item.Video3DFormat = Video3DFormat.HalfSideBySide;
+ }
+ else if (item.Path.IndexOf("[hsbs]", StringComparison.OrdinalIgnoreCase) != -1)
+ {
+ item.Video3DFormat = Video3DFormat.HalfSideBySide;
+ }
+ else if (item.Path.IndexOf("[fsbs]", StringComparison.OrdinalIgnoreCase) != -1)
+ {
+ item.Video3DFormat = Video3DFormat.FullSideBySide;
+ }
+ else if (item.Path.IndexOf("[ftab]", StringComparison.OrdinalIgnoreCase) != -1)
+ {
+ item.Video3DFormat = Video3DFormat.FullTopAndBottom;
+ }
+ else if (item.Path.IndexOf("[htab]", StringComparison.OrdinalIgnoreCase) != -1)
+ {
+ item.Video3DFormat = Video3DFormat.HalfTopAndBottom;
+ }
}
}
}
diff --git a/MediaBrowser.Model.net35/MediaBrowser.Model.net35.csproj b/MediaBrowser.Model.net35/MediaBrowser.Model.net35.csproj
index 089a80e79..7061c4277 100644
--- a/MediaBrowser.Model.net35/MediaBrowser.Model.net35.csproj
+++ b/MediaBrowser.Model.net35/MediaBrowser.Model.net35.csproj
@@ -154,6 +154,9 @@
<Compile Include="..\MediaBrowser.Model\Entities\SeriesStatus.cs">
<Link>Entities\SeriesStatus.cs</Link>
</Compile>
+ <Compile Include="..\MediaBrowser.Model\Entities\Video3DFormat.cs">
+ <Link>Entities\Video3DFormat.cs</Link>
+ </Compile>
<Compile Include="..\MediaBrowser.Model\Entities\VideoFormat.cs">
<Link>Entities\VideoFormat.cs</Link>
</Compile>
diff --git a/MediaBrowser.Model/Dto/BaseItemDto.cs b/MediaBrowser.Model/Dto/BaseItemDto.cs
index d938f53d2..f5398ddd5 100644
--- a/MediaBrowser.Model/Dto/BaseItemDto.cs
+++ b/MediaBrowser.Model/Dto/BaseItemDto.cs
@@ -37,6 +37,12 @@ namespace MediaBrowser.Model.Dto
public string SortName { get; set; }
/// <summary>
+ /// Gets or sets the video3 D format.
+ /// </summary>
+ /// <value>The video3 D format.</value>
+ public Video3DFormat? Video3DFormat { get; set; }
+
+ /// <summary>
/// Gets or sets the premiere date.
/// </summary>
/// <value>The premiere date.</value>
diff --git a/MediaBrowser.Model/Entities/Video3DFormat.cs b/MediaBrowser.Model/Entities/Video3DFormat.cs
new file mode 100644
index 000000000..04475cf95
--- /dev/null
+++ b/MediaBrowser.Model/Entities/Video3DFormat.cs
@@ -0,0 +1,14 @@
+
+namespace MediaBrowser.Model.Entities
+{
+ public enum Video3DFormat
+ {
+ HalfSideBySide,
+
+ FullSideBySide,
+
+ FullTopAndBottom,
+
+ HalfTopAndBottom
+ }
+}
diff --git a/MediaBrowser.Model/MediaBrowser.Model.csproj b/MediaBrowser.Model/MediaBrowser.Model.csproj
index 2068920d8..06dfa776d 100644
--- a/MediaBrowser.Model/MediaBrowser.Model.csproj
+++ b/MediaBrowser.Model/MediaBrowser.Model.csproj
@@ -53,6 +53,7 @@
<Compile Include="Dto\StudioDto.cs" />
<Compile Include="Entities\ItemReview.cs" />
<Compile Include="Entities\MetadataFields.cs" />
+ <Compile Include="Entities\Video3DFormat.cs" />
<Compile Include="Net\WebSocketMessage.cs" />
<Compile Include="Net\WebSocketMessageType.cs" />
<Compile Include="Net\WebSocketState.cs" />
diff --git a/MediaBrowser.Model/Querying/ItemQuery.cs b/MediaBrowser.Model/Querying/ItemQuery.cs
index dfb2cad74..18b263960 100644
--- a/MediaBrowser.Model/Querying/ItemQuery.cs
+++ b/MediaBrowser.Model/Querying/ItemQuery.cs
@@ -72,7 +72,7 @@ namespace MediaBrowser.Model.Querying
/// Gets or sets the video formats.
/// </summary>
/// <value>The video formats.</value>
- public VideoFormat[] VideoFormats { get; set; }
+ public bool? Is3D { get; set; }
/// <summary>
/// Gets or sets the video types.
@@ -189,8 +189,6 @@ namespace MediaBrowser.Model.Querying
MediaTypes = new string[] {};
- VideoFormats = new VideoFormat[] { };
-
VideoTypes = new VideoType[] {};
Genres = new string[] { };
diff --git a/MediaBrowser.Providers/Savers/FolderXmlSaver.cs b/MediaBrowser.Providers/Savers/FolderXmlSaver.cs
index 0cc974432..2c6117554 100644
--- a/MediaBrowser.Providers/Savers/FolderXmlSaver.cs
+++ b/MediaBrowser.Providers/Savers/FolderXmlSaver.cs
@@ -27,12 +27,28 @@ namespace MediaBrowser.Providers.Savers
/// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns>
public bool Supports(BaseItem item)
{
- if (!_config.Configuration.SaveLocalMeta || item.LocationType != LocationType.FileSystem)
+ if (item.LocationType != LocationType.FileSystem)
{
return false;
}
- return item is Folder && !(item is Series) && !(item is BoxSet) && !(item is MusicArtist) && !(item is MusicAlbum);
+ if (!(item is Folder))
+ {
+ return false;
+ }
+
+ // For these we can proceed even if save local metadata is off
+ if (item is AggregateFolder || item is UserRootFolder || item is CollectionFolder)
+ {
+ return true;
+ }
+
+ if (!_config.Configuration.SaveLocalMeta)
+ {
+ return false;
+ }
+
+ return !(item is Series) && !(item is BoxSet) && !(item is MusicArtist) && !(item is MusicAlbum);
}
/// <summary>
diff --git a/MediaBrowser.Server.Implementations/Library/ResolverHelper.cs b/MediaBrowser.Server.Implementations/Library/ResolverHelper.cs
index 5a4e27108..113479e7e 100644
--- a/MediaBrowser.Server.Implementations/Library/ResolverHelper.cs
+++ b/MediaBrowser.Server.Implementations/Library/ResolverHelper.cs
@@ -35,7 +35,12 @@ namespace MediaBrowser.Server.Implementations.Library
}
item.Id = item.Path.GetMBId(item.GetType());
- item.DisplayMediaType = item.GetType().Name;
+
+ // If the resolver didn't specify this
+ if (string.IsNullOrEmpty(item.DisplayMediaType))
+ {
+ item.DisplayMediaType = item.GetType().Name;
+ }
// Make sure the item has a name
EnsureName(item);
diff --git a/Nuget/MediaBrowser.Common.Internal.nuspec b/Nuget/MediaBrowser.Common.Internal.nuspec
index 68c04afc1..d98e4cd1b 100644
--- a/Nuget/MediaBrowser.Common.Internal.nuspec
+++ b/Nuget/MediaBrowser.Common.Internal.nuspec
@@ -2,7 +2,7 @@
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>MediaBrowser.Common.Internal</id>
- <version>3.0.129</version>
+ <version>3.0.130</version>
<title>MediaBrowser.Common.Internal</title>
<authors>Luke</authors>
<owners>ebr,Luke,scottisafool</owners>
@@ -12,7 +12,7 @@
<description>Contains common components shared by Media Browser Theater and Media Browser Server. Not intended for plugin developer consumption.</description>
<copyright>Copyright © Media Browser 2013</copyright>
<dependencies>
- <dependency id="MediaBrowser.Common" version="3.0.129" />
+ <dependency id="MediaBrowser.Common" version="3.0.130" />
<dependency id="NLog" version="2.0.1.2" />
<dependency id="ServiceStack.Text" version="3.9.45" />
<dependency id="SimpleInjector" version="2.2.3" />
diff --git a/Nuget/MediaBrowser.Common.nuspec b/Nuget/MediaBrowser.Common.nuspec
index 36be1302b..0f60e17ae 100644
--- a/Nuget/MediaBrowser.Common.nuspec
+++ b/Nuget/MediaBrowser.Common.nuspec
@@ -2,7 +2,7 @@
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>MediaBrowser.Common</id>
- <version>3.0.129</version>
+ <version>3.0.130</version>
<title>MediaBrowser.Common</title>
<authors>Media Browser Team</authors>
<owners>ebr,Luke,scottisafool</owners>
diff --git a/Nuget/MediaBrowser.Server.Core.nuspec b/Nuget/MediaBrowser.Server.Core.nuspec
index a584381ee..bcaa16742 100644
--- a/Nuget/MediaBrowser.Server.Core.nuspec
+++ b/Nuget/MediaBrowser.Server.Core.nuspec
@@ -2,7 +2,7 @@
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>MediaBrowser.Server.Core</id>
- <version>3.0.129</version>
+ <version>3.0.130</version>
<title>Media Browser.Server.Core</title>
<authors>Media Browser Team</authors>
<owners>ebr,Luke,scottisafool</owners>
@@ -12,7 +12,7 @@
<description>Contains core components required to build plugins for Media Browser Server.</description>
<copyright>Copyright © Media Browser 2013</copyright>
<dependencies>
- <dependency id="MediaBrowser.Common" version="3.0.129" />
+ <dependency id="MediaBrowser.Common" version="3.0.130" />
</dependencies>
</metadata>
<files>