aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke <luke.pulverenti@gmail.com>2017-09-20 03:13:30 -0400
committerGitHub <noreply@github.com>2017-09-20 03:13:30 -0400
commit76adfd1f630e88ac613cd19e095d5b6247d92640 (patch)
tree7285698d1052a30b98d9f7edff7593ac323494e9
parent64dc283753af2ce61864477bdcbeee12426a7a4b (diff)
parent07751895a18380b48e6cdfb2ad5b1bfc14cb5b5b (diff)
Merge pull request #2895 from MediaBrowser/dev
Dev
-rw-r--r--Emby.Server.Implementations/ApplicationHost.cs14
-rw-r--r--Emby.Server.Implementations/Data/SqliteItemRepository.cs2
-rw-r--r--MediaBrowser.Controller/LiveTv/LiveTvProgram.cs4
-rw-r--r--MediaBrowser.XbmcMetadata/Parsers/MovieNfoParser.cs73
-rw-r--r--SharedVersion.cs2
5 files changed, 85 insertions, 10 deletions
diff --git a/Emby.Server.Implementations/ApplicationHost.cs b/Emby.Server.Implementations/ApplicationHost.cs
index 59f521eb5..713ece421 100644
--- a/Emby.Server.Implementations/ApplicationHost.cs
+++ b/Emby.Server.Implementations/ApplicationHost.cs
@@ -2206,17 +2206,19 @@ namespace Emby.Server.Implementations
/// <returns>Task{CheckForUpdateResult}.</returns>
public async Task<CheckForUpdateResult> CheckForApplicationUpdate(CancellationToken cancellationToken, IProgress<double> progress)
{
- var cacheLength = TimeSpan.FromMinutes(5);
var updateLevel = SystemUpdateLevel;
+ var cacheLength = updateLevel == PackageVersionClass.Release ?
+ TimeSpan.FromHours(4) :
+ TimeSpan.FromMinutes(5);
- var result = await new GithubUpdater(HttpClient, JsonSerializer).CheckForUpdateResult("MediaBrowser",
- "Emby",
- ApplicationVersion,
+ var result = await new GithubUpdater(HttpClient, JsonSerializer).CheckForUpdateResult("MediaBrowser",
+ "Emby",
+ ApplicationVersion,
updateLevel,
ReleaseAssetFilename,
"MBServer",
- UpdateTargetFileName,
- cacheLength,
+ UpdateTargetFileName,
+ cacheLength,
cancellationToken).ConfigureAwait(false);
HasUpdateAvailable = result.IsUpdateAvailable;
diff --git a/Emby.Server.Implementations/Data/SqliteItemRepository.cs b/Emby.Server.Implementations/Data/SqliteItemRepository.cs
index 2186982d3..89ffb0fce 100644
--- a/Emby.Server.Implementations/Data/SqliteItemRepository.cs
+++ b/Emby.Server.Implementations/Data/SqliteItemRepository.cs
@@ -4410,7 +4410,7 @@ namespace Emby.Server.Implementations.Data
index++;
}
- whereClauses.Add(string.Join(" OR ", includeIds.ToArray()));
+ whereClauses.Add("(" + string.Join(" OR ", includeIds.ToArray()) + ")");
}
if (query.ExcludeItemIds.Length > 0)
{
diff --git a/MediaBrowser.Controller/LiveTv/LiveTvProgram.cs b/MediaBrowser.Controller/LiveTv/LiveTvProgram.cs
index 5449e59a2..1c1637330 100644
--- a/MediaBrowser.Controller/LiveTv/LiveTvProgram.cs
+++ b/MediaBrowser.Controller/LiveTv/LiveTvProgram.cs
@@ -50,7 +50,9 @@ namespace MediaBrowser.Controller.LiveTv
public static double? GetDefaultPrimaryImageAspectRatio(IHasProgramAttributes item)
{
var serviceName = item.ServiceName;
- if (!item.IsMovie && !string.Equals(serviceName, EmbyServiceName, StringComparison.OrdinalIgnoreCase))
+ if (!item.IsMovie
+ && !string.Equals(serviceName, EmbyServiceName, StringComparison.OrdinalIgnoreCase)
+ && !string.Equals(serviceName, "Next Pvr", StringComparison.OrdinalIgnoreCase))
{
double value = 16;
value /= 9;
diff --git a/MediaBrowser.XbmcMetadata/Parsers/MovieNfoParser.cs b/MediaBrowser.XbmcMetadata/Parsers/MovieNfoParser.cs
index 85f9f92ba..0283e4a7b 100644
--- a/MediaBrowser.XbmcMetadata/Parsers/MovieNfoParser.cs
+++ b/MediaBrowser.XbmcMetadata/Parsers/MovieNfoParser.cs
@@ -1,4 +1,7 @@
-using System.Linq;
+using System;
+using System.IO;
+using System.Linq;
+using System.Text;
using MediaBrowser.Common.Configuration;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Movies;
@@ -70,6 +73,17 @@ namespace MediaBrowser.XbmcMetadata.Parsers
{
movie.CollectionName = val;
}
+ else
+ {
+ try
+ {
+ ParseSetXml(val, movie);
+ }
+ catch (Exception ex)
+ {
+ Logger.ErrorException("Error parsing set node", ex);
+ }
+ }
}
break;
@@ -109,6 +123,63 @@ namespace MediaBrowser.XbmcMetadata.Parsers
}
}
+ private void ParseSetXml(string xml, Movie movie)
+ {
+ using (var ms = new MemoryStream())
+ {
+ //xml = xml.Substring(xml.IndexOf('<'));
+ //xml = xml.Substring(0, xml.LastIndexOf('>'));
+ xml = "<set>" + xml + "</set>";
+
+ var bytes = Encoding.UTF8.GetBytes(xml);
+
+ ms.Write(bytes, 0, bytes.Length);
+ ms.Position = 0;
+
+ // These are not going to be valid xml so no sense in causing the provider to fail and spamming the log with exceptions
+ try
+ {
+ var settings = XmlReaderSettingsFactory.Create(false);
+
+ settings.CheckCharacters = false;
+ settings.IgnoreProcessingInstructions = true;
+ settings.IgnoreComments = true;
+
+ // Use XmlReader for best performance
+ using (var reader = XmlReader.Create(ms, settings))
+ {
+ reader.MoveToContent();
+ reader.Read();
+
+ // Loop through each element
+ while (!reader.EOF && reader.ReadState == ReadState.Interactive)
+ {
+ if (reader.NodeType == XmlNodeType.Element)
+ {
+ switch (reader.Name)
+ {
+ case "name":
+ movie.CollectionName = reader.ReadElementContentAsString();
+ break;
+ default:
+ reader.Skip();
+ break;
+ }
+ }
+ else
+ {
+ reader.Read();
+ }
+ }
+ }
+ }
+ catch (XmlException)
+ {
+
+ }
+ }
+ }
+
public MovieNfoParser(ILogger logger, IConfigurationManager config, IProviderManager providerManager, IFileSystem fileSystem, IXmlReaderSettingsFactory xmlReaderSettingsFactory) : base(logger, config, providerManager, fileSystem, xmlReaderSettingsFactory)
{
}
diff --git a/SharedVersion.cs b/SharedVersion.cs
index 016e036f8..841d2968c 100644
--- a/SharedVersion.cs
+++ b/SharedVersion.cs
@@ -1,3 +1,3 @@
using System.Reflection;
-[assembly: AssemblyVersion("3.2.30.26")]
+[assembly: AssemblyVersion("3.2.30.27")]