Browse Source

Update DescriptionXmlBuilder.cs

BaronGreenback 4 years ago
parent
commit
86ad04b657
1 changed files with 33 additions and 26 deletions
  1. 33 26
      Emby.Dlna/Server/DescriptionXmlBuilder.cs

+ 33 - 26
Emby.Dlna/Server/DescriptionXmlBuilder.cs

@@ -6,7 +6,6 @@ using System.Globalization;
 using System.Linq;
 using System.Security;
 using System.Text;
-using Emby.Dlna.Common;
 using MediaBrowser.Model.Dlna;
 
 namespace Emby.Dlna.Server
@@ -20,8 +19,9 @@ namespace Emby.Dlna.Server
         private readonly string _serverAddress;
         private readonly string _serverName;
         private readonly string _serverId;
+        private readonly string _customName;
 
-        public DescriptionXmlBuilder(DeviceProfile profile, string serverUdn, string serverAddress, string serverName, string serverId)
+        public DescriptionXmlBuilder(DeviceProfile profile, string serverUdn, string serverAddress, string serverName, string serverId, string customName)
         {
             if (string.IsNullOrEmpty(serverUdn))
             {
@@ -38,6 +38,7 @@ namespace Emby.Dlna.Server
             _serverAddress = serverAddress;
             _serverName = serverName;
             _serverId = serverId;
+            _customName = customName;
         }
 
         private static bool EnableAbsoluteUrls => false;
@@ -168,7 +169,12 @@ namespace Emby.Dlna.Server
         {
             if (string.IsNullOrEmpty(_profile.FriendlyName))
             {
-                return "Jellyfin - " + _serverName;
+                if (string.IsNullOrEmpty(_customName))
+                {
+                    return "Jellyfin - " + _serverName;
+                }
+
+                return _customName;
             }
 
             var characterList = new List<char>();
@@ -235,13 +241,13 @@ namespace Emby.Dlna.Server
                     .Append(SecurityElement.Escape(service.ServiceId ?? string.Empty))
                     .Append("</serviceId>");
                 builder.Append("<SCPDURL>")
-                    .Append(BuildUrl(service.ScpdUrl))
+                    .Append(BuildUrl(service.ScpdUrl, true))
                     .Append("</SCPDURL>");
                 builder.Append("<controlURL>")
-                    .Append(BuildUrl(service.ControlUrl))
+                    .Append(BuildUrl(service.ControlUrl, true))
                     .Append("</controlURL>");
                 builder.Append("<eventSubURL>")
-                    .Append(BuildUrl(service.EventSubUrl))
+                    .Append(BuildUrl(service.EventSubUrl, true))
                     .Append("</eventSubURL>");
 
                 builder.Append("</service>");
@@ -250,7 +256,7 @@ namespace Emby.Dlna.Server
             builder.Append("</serviceList>");
         }
 
-        private string BuildUrl(string url)
+        private string BuildUrl(string url, bool absoluteUrl = false)
         {
             if (string.IsNullOrEmpty(url))
             {
@@ -261,7 +267,7 @@ namespace Emby.Dlna.Server
 
             url = "/dlna/" + _serverUdn + "/" + url;
 
-            if (EnableAbsoluteUrls)
+            if (EnableAbsoluteUrls || absoluteUrl)
             {
                 url = _serverAddress.TrimEnd('/') + url;
             }
@@ -269,7 +275,7 @@ namespace Emby.Dlna.Server
             return SecurityElement.Escape(url);
         }
 
-        private IEnumerable<DeviceIcon> GetIcons()
+        private static IEnumerable<DeviceIcon> GetIcons()
             => new[]
             {
                 new DeviceIcon
@@ -329,25 +335,26 @@ namespace Emby.Dlna.Server
 
         private IEnumerable<DeviceService> GetServices()
         {
-            var list = new List<DeviceService>();
-
-            list.Add(new DeviceService
+            var list = new List<DeviceService>
             {
-                ServiceType = "urn:schemas-upnp-org:service:ContentDirectory:1",
-                ServiceId = "urn:upnp-org:serviceId:ContentDirectory",
-                ScpdUrl = "contentdirectory/contentdirectory.xml",
-                ControlUrl = "contentdirectory/control",
-                EventSubUrl = "contentdirectory/events"
-            });
+                new DeviceService
+                {
+                    ServiceType = "urn:schemas-upnp-org:service:ContentDirectory:1",
+                    ServiceId = "urn:upnp-org:serviceId:ContentDirectory",
+                    ScpdUrl = "contentdirectory/contentdirectory.xml",
+                    ControlUrl = "contentdirectory/control",
+                    EventSubUrl = "contentdirectory/events"
+                },
 
-            list.Add(new DeviceService
-            {
-                ServiceType = "urn:schemas-upnp-org:service:ConnectionManager:1",
-                ServiceId = "urn:upnp-org:serviceId:ConnectionManager",
-                ScpdUrl = "connectionmanager/connectionmanager.xml",
-                ControlUrl = "connectionmanager/control",
-                EventSubUrl = "connectionmanager/events"
-            });
+                new DeviceService
+                {
+                    ServiceType = "urn:schemas-upnp-org:service:ConnectionManager:1",
+                    ServiceId = "urn:upnp-org:serviceId:ConnectionManager",
+                    ScpdUrl = "connectionmanager/connectionmanager.xml",
+                    ControlUrl = "connectionmanager/control",
+                    EventSubUrl = "connectionmanager/events"
+                }
+            };
 
             if (_profile.EnableMSMediaReceiverRegistrar)
             {