diff options
| -rw-r--r-- | MediaBrowser.Api/UserLibrary/ItemsService.cs | 10 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Dto/DtoBuilder.cs | 2 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/Video.cs | 8 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Resolvers/BaseVideoResolver.cs | 21 | ||||
| -rw-r--r-- | MediaBrowser.Model.net35/MediaBrowser.Model.net35.csproj | 3 | ||||
| -rw-r--r-- | MediaBrowser.Model/Dto/BaseItemDto.cs | 6 | ||||
| -rw-r--r-- | MediaBrowser.Model/Entities/Video3DFormat.cs | 14 | ||||
| -rw-r--r-- | MediaBrowser.Model/MediaBrowser.Model.csproj | 1 | ||||
| -rw-r--r-- | MediaBrowser.Model/Querying/ItemQuery.cs | 4 | ||||
| -rw-r--r-- | MediaBrowser.Providers/Savers/FolderXmlSaver.cs | 20 | ||||
| -rw-r--r-- | MediaBrowser.Server.Implementations/Library/ResolverHelper.cs | 7 | ||||
| -rw-r--r-- | Nuget/MediaBrowser.Common.Internal.nuspec | 4 | ||||
| -rw-r--r-- | Nuget/MediaBrowser.Common.nuspec | 2 | ||||
| -rw-r--r-- | Nuget/MediaBrowser.Server.Core.nuspec | 4 |
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> |
