aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MediaBrowser.Api/Images/ImageService.cs3
-rw-r--r--MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs26
-rw-r--r--MediaBrowser.Api/UserLibrary/UserLibraryService.cs2
-rw-r--r--MediaBrowser.Common.Implementations/BaseApplicationPaths.cs2
-rw-r--r--MediaBrowser.Common/Kernel/BaseKernel.cs2
-rw-r--r--MediaBrowser.Common/Plugins/BasePlugin.cs24
-rw-r--r--MediaBrowser.Controller/MediaBrowser.Controller.csproj3
-rw-r--r--MediaBrowser.Controller/packages.config1
-rw-r--r--MediaBrowser.Model/DTO/BaseItemDto.cs6
-rw-r--r--MediaBrowser.Model/Dto/ItemsByNameQuery.cs52
-rw-r--r--MediaBrowser.Model/MediaBrowser.Model.csproj1
-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, 94 insertions, 38 deletions
diff --git a/MediaBrowser.Api/Images/ImageService.cs b/MediaBrowser.Api/Images/ImageService.cs
index ac9a220b6..4f06ae424 100644
--- a/MediaBrowser.Api/Images/ImageService.cs
+++ b/MediaBrowser.Api/Images/ImageService.cs
@@ -359,7 +359,8 @@ namespace MediaBrowser.Api.Images
break;
}
- var extension = mimeType.Substring(mimeType.IndexOf('/') + 1);
+
+ var extension = mimeType.Split(';').First().Split('/').Last();
var oldImagePath = entity.GetImage(imageType);
diff --git a/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs b/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs
index ce3d9d8e0..4fe19fcf3 100644
--- a/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs
+++ b/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs
@@ -82,7 +82,9 @@ namespace MediaBrowser.Api.UserLibrary
}
- var tasks = ibnItems.Select(i => GetDto(i, user, new List<ItemFields>()));
+ var fields = GetItemFields(request).ToList();
+
+ var tasks = ibnItems.Select(i => GetDto(i, user, fields));
var resultItems = await Task.WhenAll(tasks).ConfigureAwait(false);
@@ -92,6 +94,23 @@ namespace MediaBrowser.Api.UserLibrary
}
/// <summary>
+ /// Gets the item fields.
+ /// </summary>
+ /// <param name="request">The request.</param>
+ /// <returns>IEnumerable{ItemFields}.</returns>
+ private IEnumerable<ItemFields> GetItemFields(GetItemsByName request)
+ {
+ var val = request.Fields;
+
+ if (string.IsNullOrEmpty(val))
+ {
+ return new ItemFields[] { };
+ }
+
+ return val.Split(',').Select(v => (ItemFields)Enum.Parse(typeof(ItemFields), v, true));
+ }
+
+ /// <summary>
/// Gets all items.
/// </summary>
/// <param name="request">The request.</param>
@@ -171,5 +190,10 @@ namespace MediaBrowser.Api.UserLibrary
/// </summary>
/// <value>The item id.</value>
public string Id { get; set; }
+ /// <summary>
+ /// Fields to return within the items, in addition to basic information
+ /// </summary>
+ /// <value>The fields.</value>
+ public string Fields { get; set; }
}
}
diff --git a/MediaBrowser.Api/UserLibrary/UserLibraryService.cs b/MediaBrowser.Api/UserLibrary/UserLibraryService.cs
index 78e9ad63e..b85a8d1a3 100644
--- a/MediaBrowser.Api/UserLibrary/UserLibraryService.cs
+++ b/MediaBrowser.Api/UserLibrary/UserLibraryService.cs
@@ -60,7 +60,7 @@ namespace MediaBrowser.Api.UserLibrary
/// <summary>
/// Class UpdateDisplayPreferences
/// </summary>
- [Route("/Users/{UserId}/Items/{Id}/DisplayPreferences", "GET")]
+ [Route("/Users/{UserId}/Items/{Id}/DisplayPreferences", "POST")]
[ServiceStack.ServiceHost.Api(("Updates a user's display preferences for an item"))]
public class UpdateDisplayPreferences : IReturnVoid, IRequiresRequestStream
{
diff --git a/MediaBrowser.Common.Implementations/BaseApplicationPaths.cs b/MediaBrowser.Common.Implementations/BaseApplicationPaths.cs
index e7abad1a4..d94d79c75 100644
--- a/MediaBrowser.Common.Implementations/BaseApplicationPaths.cs
+++ b/MediaBrowser.Common.Implementations/BaseApplicationPaths.cs
@@ -15,7 +15,7 @@ namespace MediaBrowser.Common.Implementations
/// <summary>
/// The _use debug path
/// </summary>
- private bool _useDebugPath;
+ private readonly bool _useDebugPath;
/// <summary>
/// Initializes a new instance of the <see cref="BaseApplicationPaths" /> class.
diff --git a/MediaBrowser.Common/Kernel/BaseKernel.cs b/MediaBrowser.Common/Kernel/BaseKernel.cs
index 85d541f09..78277ed2f 100644
--- a/MediaBrowser.Common/Kernel/BaseKernel.cs
+++ b/MediaBrowser.Common/Kernel/BaseKernel.cs
@@ -404,7 +404,7 @@ namespace MediaBrowser.Common.Kernel
}
catch (FileNotFoundException)
{
- configuration = ApplicationHost.CreateInstance(type);
+ configuration = Activator.CreateInstance(type);
}
// Take the object we just got and serialize it back to bytes
diff --git a/MediaBrowser.Common/Plugins/BasePlugin.cs b/MediaBrowser.Common/Plugins/BasePlugin.cs
index 56da543f0..0d7c5c060 100644
--- a/MediaBrowser.Common/Plugins/BasePlugin.cs
+++ b/MediaBrowser.Common/Plugins/BasePlugin.cs
@@ -295,10 +295,6 @@ namespace MediaBrowser.Common.Plugins
{
InitializeOnServer(!File.Exists(ConfigurationFilePath));
}
- else if (kernel.KernelContext == KernelContext.Ui)
- {
- InitializeInUi();
- }
}
/// <summary>
@@ -310,13 +306,6 @@ namespace MediaBrowser.Common.Plugins
}
/// <summary>
- /// Starts the plugin in the Ui
- /// </summary>
- protected virtual void InitializeInUi()
- {
- }
-
- /// <summary>
/// Disposes the plugins. Undos all actions performed during Init.
/// </summary>
public void Dispose()
@@ -335,10 +324,6 @@ namespace MediaBrowser.Common.Plugins
{
DisposeOnServer(dispose);
}
- else if (Kernel.KernelContext == KernelContext.Ui)
- {
- DisposeInUI(dispose);
- }
}
/// <summary>
@@ -351,15 +336,6 @@ namespace MediaBrowser.Common.Plugins
}
/// <summary>
- /// Releases unmanaged and - optionally - managed resources.
- /// </summary>
- /// <param name="dispose"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
- protected virtual void DisposeInUI(bool dispose)
- {
-
- }
-
- /// <summary>
/// The _save lock
/// </summary>
private readonly object _configurationSaveLock = new object();
diff --git a/MediaBrowser.Controller/MediaBrowser.Controller.csproj b/MediaBrowser.Controller/MediaBrowser.Controller.csproj
index 1e55ae78e..71116881e 100644
--- a/MediaBrowser.Controller/MediaBrowser.Controller.csproj
+++ b/MediaBrowser.Controller/MediaBrowser.Controller.csproj
@@ -56,9 +56,6 @@
<Reference Include="Mediabrowser.PluginSecurity">
<HintPath>Plugins\Mediabrowser.PluginSecurity.dll</HintPath>
</Reference>
- <Reference Include="MoreLinq">
- <HintPath>..\packages\morelinq.1.0.15631-beta\lib\net35\MoreLinq.dll</HintPath>
- </Reference>
<Reference Include="protobuf-net, Version=2.0.0.621, Culture=neutral, PublicKeyToken=257b51d87d2e4d67, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\protobuf-net.2.0.0.621\lib\net40\protobuf-net.dll</HintPath>
diff --git a/MediaBrowser.Controller/packages.config b/MediaBrowser.Controller/packages.config
index e3e4367b7..bb2545c6f 100644
--- a/MediaBrowser.Controller/packages.config
+++ b/MediaBrowser.Controller/packages.config
@@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
- <package id="morelinq" version="1.0.15631-beta" targetFramework="net45" />
<package id="protobuf-net" version="2.0.0.621" targetFramework="net45" />
</packages> \ No newline at end of file
diff --git a/MediaBrowser.Model/DTO/BaseItemDto.cs b/MediaBrowser.Model/DTO/BaseItemDto.cs
index 416e9fc13..c72613d1a 100644
--- a/MediaBrowser.Model/DTO/BaseItemDto.cs
+++ b/MediaBrowser.Model/DTO/BaseItemDto.cs
@@ -631,6 +631,12 @@ namespace MediaBrowser.Model.Dto
get { return string.Equals(MediaType, Entities.MediaType.Game, StringComparison.OrdinalIgnoreCase); }
}
+ [IgnoreDataMember]
+ public bool IsPerson
+ {
+ get { return string.Equals(Type, "Person", StringComparison.OrdinalIgnoreCase); }
+ }
+
/// <summary>
/// Occurs when [property changed].
/// </summary>
diff --git a/MediaBrowser.Model/Dto/ItemsByNameQuery.cs b/MediaBrowser.Model/Dto/ItemsByNameQuery.cs
new file mode 100644
index 000000000..d1fe8d3d5
--- /dev/null
+++ b/MediaBrowser.Model/Dto/ItemsByNameQuery.cs
@@ -0,0 +1,52 @@
+using MediaBrowser.Model.Entities;
+using System;
+
+namespace MediaBrowser.Model.Dto
+{
+ /// <summary>
+ /// Class ItemsByNameQuery
+ /// </summary>
+ public class ItemsByNameQuery
+ {
+ /// <summary>
+ /// Gets or sets the user id.
+ /// </summary>
+ /// <value>The user id.</value>
+ public Guid UserId { get; set; }
+ /// <summary>
+ /// Gets or sets the start index.
+ /// </summary>
+ /// <value>The start index.</value>
+ public int? StartIndex { get; set; }
+ /// <summary>
+ /// Gets or sets the size of the page.
+ /// </summary>
+ /// <value>The size of the page.</value>
+ public int? PageSize { get; set; }
+ /// <summary>
+ /// Gets or sets a value indicating whether this <see cref="GetItemsByName" /> is recursive.
+ /// </summary>
+ /// <value><c>true</c> if recursive; otherwise, <c>false</c>.</value>
+ public bool Recursive { get; set; }
+ /// <summary>
+ /// Gets or sets the sort order.
+ /// </summary>
+ /// <value>The sort order.</value>
+ public SortOrder? SortOrder { get; set; }
+ /// <summary>
+ /// If specified the search will be localized within a specific item or folder
+ /// </summary>
+ /// <value>The item id.</value>
+ public string ItemId { get; set; }
+ /// <summary>
+ /// Fields to return within the items, in addition to basic information
+ /// </summary>
+ /// <value>The fields.</value>
+ public ItemFields[] Fields { get; set; }
+ /// <summary>
+ /// Gets or sets the person types.
+ /// </summary>
+ /// <value>The person types.</value>
+ public string[] PersonTypes { get; set; }
+ }
+}
diff --git a/MediaBrowser.Model/MediaBrowser.Model.csproj b/MediaBrowser.Model/MediaBrowser.Model.csproj
index 605fd1046..f291e12c9 100644
--- a/MediaBrowser.Model/MediaBrowser.Model.csproj
+++ b/MediaBrowser.Model/MediaBrowser.Model.csproj
@@ -44,6 +44,7 @@
<Compile Include="Configuration\ServerConfiguration.cs" />
<Compile Include="Dto\BaseItemPerson.cs" />
<Compile Include="Dto\ChapterInfoDto.cs" />
+ <Compile Include="Dto\ItemsByNameQuery.cs" />
<Compile Include="Dto\MediaType.cs" />
<Compile Include="Entities\BaseItemInfo.cs" />
<Compile Include="Connectivity\ClientConnectionInfo.cs" />
diff --git a/Nuget/MediaBrowser.Common.Internal.nuspec b/Nuget/MediaBrowser.Common.Internal.nuspec
index 2e1b8fdc5..c005b145b 100644
--- a/Nuget/MediaBrowser.Common.Internal.nuspec
+++ b/Nuget/MediaBrowser.Common.Internal.nuspec
@@ -2,7 +2,7 @@
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>MediaBrowser.Common.Internal</id>
- <version>3.0.19</version>
+ <version>3.0.22</version>
<title />
<authors>Luke</authors>
<owners>Media Browser Team</owners>
@@ -11,7 +11,7 @@
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Contains common components shared by Media Browser Theatre and Media Browser Server. Not intended for plugin developer consumption.</description>
<dependencies>
- <dependency id="MediaBrowser.Common" version="3.0.19" />
+ <dependency id="MediaBrowser.Common" version="3.0.22" />
<dependency id="NLog" version="2.0.0.2000" />
<dependency id="ServiceStack" version="3.9.37" />
<dependency id="ServiceStack.Api.Swagger" version="3.9.35" />
diff --git a/Nuget/MediaBrowser.Common.nuspec b/Nuget/MediaBrowser.Common.nuspec
index 83d025e89..bd5363302 100644
--- a/Nuget/MediaBrowser.Common.nuspec
+++ b/Nuget/MediaBrowser.Common.nuspec
@@ -2,7 +2,7 @@
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>MediaBrowser.Common</id>
- <version>3.0.19</version>
+ <version>3.0.22</version>
<title>MediaBrowser.Common</title>
<authors>Media Browser Team</authors>
<owners />
diff --git a/Nuget/MediaBrowser.Server.Core.nuspec b/Nuget/MediaBrowser.Server.Core.nuspec
index d990b8e73..be7a20a8a 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.19</version>
+ <version>3.0.22</version>
<title>Media Browser.Server.Core</title>
<authors>Media Browser Team</authors>
<owners />
@@ -11,7 +11,7 @@
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Contains core components required to build plugins for Media Browser Server.</description>
<dependencies>
- <dependency id="MediaBrowser.Common" version="3.0.19" />
+ <dependency id="MediaBrowser.Common" version="3.0.22" />
</dependencies>
</metadata>
<files>