aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2014-10-20 23:41:11 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2014-10-20 23:41:11 -0400
commita3d7849c268ad50f1553049124337be51fbc38a4 (patch)
tree118f6531b07798ca57c881973daf32810ffc490c
parentdf509dedb71c35d6503a46d0e87a40790d2401e6 (diff)
support url's after closing nfo tag
-rw-r--r--MediaBrowser.Common.Implementations/BaseApplicationHost.cs10
-rw-r--r--MediaBrowser.Controller/Entities/MusicVideo.cs15
-rw-r--r--MediaBrowser.Dlna/DlnaManager.cs1
-rw-r--r--MediaBrowser.Server.Implementations/Connect/ConnectEntryPoint.cs2
-rw-r--r--MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs41
5 files changed, 58 insertions, 11 deletions
diff --git a/MediaBrowser.Common.Implementations/BaseApplicationHost.cs b/MediaBrowser.Common.Implementations/BaseApplicationHost.cs
index 5a5d48ac2..a5b808226 100644
--- a/MediaBrowser.Common.Implementations/BaseApplicationHost.cs
+++ b/MediaBrowser.Common.Implementations/BaseApplicationHost.cs
@@ -296,6 +296,16 @@ namespace MediaBrowser.Common.Implementations
logger.Info("64-Bit Process: {0}", Environment.Is64BitProcess);
logger.Info("Program data path: {0}", appPaths.ProgramDataPath);
+ Type type = Type.GetType("Mono.Runtime");
+ if (type != null)
+ {
+ MethodInfo displayName = type.GetMethod("GetDisplayName", BindingFlags.NonPublic | BindingFlags.Static);
+ if (displayName != null)
+ {
+ logger.Info("Mono: " + displayName.Invoke(null, null));
+ }
+ }
+
logger.Info("Application Path: {0}", appPaths.ApplicationPath);
logger.Info("*** When reporting issues please include the entire log file. ***".ToUpper());
diff --git a/MediaBrowser.Controller/Entities/MusicVideo.cs b/MediaBrowser.Controller/Entities/MusicVideo.cs
index 307117fdd..015e4b4ae 100644
--- a/MediaBrowser.Controller/Entities/MusicVideo.cs
+++ b/MediaBrowser.Controller/Entities/MusicVideo.cs
@@ -47,6 +47,21 @@ namespace MediaBrowser.Controller.Entities
}
/// <summary>
+ /// TODO: Remove
+ /// </summary>
+ public string Artist
+ {
+ get { return Artists.FirstOrDefault(); }
+ set
+ {
+ if (!string.IsNullOrEmpty(value) && !Artists.Contains(value, StringComparer.OrdinalIgnoreCase))
+ {
+ Artists.Add(value);
+ }
+ }
+ }
+
+ /// <summary>
/// Determines whether the specified name has artist.
/// </summary>
/// <param name="name">The name.</param>
diff --git a/MediaBrowser.Dlna/DlnaManager.cs b/MediaBrowser.Dlna/DlnaManager.cs
index b4519d02d..c4a79c22d 100644
--- a/MediaBrowser.Dlna/DlnaManager.cs
+++ b/MediaBrowser.Dlna/DlnaManager.cs
@@ -541,7 +541,6 @@ namespace MediaBrowser.Dlna
public void Dispose()
{
- throw new NotImplementedException();
}
}
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Connect/ConnectEntryPoint.cs b/MediaBrowser.Server.Implementations/Connect/ConnectEntryPoint.cs
index 4344ceb0a..75195c8c5 100644
--- a/MediaBrowser.Server.Implementations/Connect/ConnectEntryPoint.cs
+++ b/MediaBrowser.Server.Implementations/Connect/ConnectEntryPoint.cs
@@ -34,7 +34,7 @@ namespace MediaBrowser.Server.Implementations.Connect
{
LoadCachedAddress();
- _timer = new Timer(TimerCallback, null, TimeSpan.FromSeconds(30), TimeSpan.FromHours(12));
+ _timer = new Timer(TimerCallback, null, TimeSpan.FromSeconds(10), TimeSpan.FromHours(12));
}
private async void TimerCallback(object state)
diff --git a/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs b/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs
index 2f2973130..7c336f6d7 100644
--- a/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs
+++ b/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs
@@ -1,4 +1,6 @@
-using MediaBrowser.Common.Configuration;
+using System.IO;
+using System.Text;
+using MediaBrowser.Common.Configuration;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Logging;
@@ -79,21 +81,42 @@ namespace MediaBrowser.XbmcMetadata.Parsers
{
using (var streamReader = BaseNfoSaver.GetStreamReader(metadataFile))
{
- // Use XmlReader for best performance
- using (var reader = XmlReader.Create(streamReader, settings))
+ // Need to handle a url after the xml data
+ // http://kodi.wiki/view/NFO_files/movies
+
+ var xml = streamReader.ReadToEnd();
+
+ var index = xml.LastIndexOf('>');
+
+ if (index != -1)
+ {
+ xml = xml.Substring(0, index + 1);
+ }
+
+ using (var ms = new MemoryStream())
{
- reader.MoveToContent();
+ var bytes = Encoding.UTF8.GetBytes(xml);
- // Loop through each element
- while (reader.Read())
+ ms.Write(bytes, 0, bytes.Length);
+ ms.Position = 0;
+
+ // Use XmlReader for best performance
+ using (var reader = XmlReader.Create(ms, settings))
{
- cancellationToken.ThrowIfCancellationRequested();
+ reader.MoveToContent();
- if (reader.NodeType == XmlNodeType.Element)
+ // Loop through each element
+ while (reader.Read())
{
- FetchDataFromXmlNode(reader, item, userDataList);
+ cancellationToken.ThrowIfCancellationRequested();
+
+ if (reader.NodeType == XmlNodeType.Element)
+ {
+ FetchDataFromXmlNode(reader, item, userDataList);
+ }
}
}
+
}
}
}