Просмотр исходного кода

support url's after closing nfo tag

Luke Pulverenti 10 лет назад
Родитель
Сommit
a3d7849c26

+ 10 - 0
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());

+ 15 - 0
MediaBrowser.Controller/Entities/MusicVideo.cs

@@ -46,6 +46,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>

+ 0 - 1
MediaBrowser.Dlna/DlnaManager.cs

@@ -541,7 +541,6 @@ namespace MediaBrowser.Dlna
 
         public void Dispose()
         {
-            throw new NotImplementedException();
         }
     }
 }

+ 1 - 1
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)

+ 32 - 9
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);
+                            }
                         }
                     }
+
                 }
             }
         }