浏览代码

update hdhomerun

Luke Pulverenti 10 年之前
父节点
当前提交
1bf9c446d9

+ 135 - 3
MediaBrowser.Model/Configuration/ServerConfiguration.cs

@@ -283,7 +283,59 @@ namespace MediaBrowser.Model.Configuration
                     {
                         new ImageOption
                         {
-                            Limit = 2,
+                            Limit = 1,
+                            MinWidth = 1280,
+                            Type = ImageType.Backdrop
+                        },
+
+                        // Don't download this by default as it's rarely used.
+                        new ImageOption
+                        {
+                            Limit = 0,
+                            Type = ImageType.Art
+                        },
+
+                        // Don't download this by default as it's rarely used.
+                        new ImageOption
+                        {
+                            Limit = 0,
+                            Type = ImageType.Disc
+                        },
+
+                        new ImageOption
+                        {
+                            Limit = 1,
+                            Type = ImageType.Primary
+                        },
+
+                        new ImageOption
+                        {
+                            Limit = 0,
+                            Type = ImageType.Banner
+                        },
+
+                        new ImageOption
+                        {
+                            Limit = 1,
+                            Type = ImageType.Thumb
+                        },
+
+                        new ImageOption
+                        {
+                            Limit = 1,
+                            Type = ImageType.Logo
+                        }
+                    }
+                },
+
+                new MetadataOptions(1, 1280)
+                {
+                    ItemType = "MusicVideo",
+                    ImageOptions = new []
+                    {
+                        new ImageOption
+                        {
+                            Limit = 1,
                             MinWidth = 1280,
                             Type = ImageType.Backdrop
                         },
@@ -335,7 +387,7 @@ namespace MediaBrowser.Model.Configuration
                     {
                         new ImageOption
                         {
-                            Limit = 2,
+                            Limit = 1,
                             MinWidth = 1280,
                             Type = ImageType.Backdrop
                         },
@@ -432,9 +484,89 @@ namespace MediaBrowser.Model.Configuration
                     }
                 },
 
+                new MetadataOptions(1, 1280)
+                {
+                    ItemType = "BoxSet",
+                    ImageOptions = new []
+                    {
+                        new ImageOption
+                        {
+                            Limit = 1,
+                            MinWidth = 1280,
+                            Type = ImageType.Backdrop
+                        },
+
+                        new ImageOption
+                        {
+                            Limit = 1,
+                            Type = ImageType.Primary
+                        },
+
+                        new ImageOption
+                        {
+                            Limit = 1,
+                            Type = ImageType.Thumb
+                        },
+
+                        new ImageOption
+                        {
+                            Limit = 1,
+                            Type = ImageType.Logo
+                        },
+
+                        // Don't download this by default as it's rarely used.
+                        new ImageOption
+                        {
+                            Limit = 0,
+                            Type = ImageType.Art
+                        },
+
+                        // Don't download this by default as it's rarely used.
+                        new ImageOption
+                        {
+                            Limit = 0,
+                            Type = ImageType.Disc
+                        },
+
+                        // Don't download this by default as it's rarely used.
+                        new ImageOption
+                        {
+                            Limit = 0,
+                            Type = ImageType.Banner
+                        }
+                    }
+                },
+
                 new MetadataOptions(0, 1280)
                 {
-                    ItemType = "Season"
+                    ItemType = "Season",
+                    ImageOptions = new []
+                    {
+                        new ImageOption
+                        {
+                            Limit = 0,
+                            MinWidth = 1280,
+                            Type = ImageType.Backdrop
+                        },
+
+                        new ImageOption
+                        {
+                            Limit = 1,
+                            Type = ImageType.Primary
+                        },
+
+                        new ImageOption
+                        {
+                            Limit = 0,
+                            Type = ImageType.Banner
+                        },
+
+                        new ImageOption
+                        {
+                            Limit = 0,
+                            Type = ImageType.Thumb
+                        }
+                    }
                 }
             };
         }

+ 1 - 2
MediaBrowser.Model/Session/GeneralCommandType.cs

@@ -34,7 +34,6 @@
         DisplayContent = 26,
         GoToSearch = 27,
         DisplayMessage = 28,
-        SetRepeatAll = 29,
-        SetRepeatOne = 30
+        SetRepeatMode = 29
     }
 }

+ 4 - 0
MediaBrowser.Model/Users/UserPolicy.cs

@@ -80,6 +80,10 @@ namespace MediaBrowser.Model.Users
             EnableLiveTvManagement = true;
             EnableLiveTvAccess = true;
 
+            // Without this on by default, admins won't be able to do this
+            // Improve in the future
+            EnableLiveTvManagement = true;
+
             EnableSharedDeviceControl = true;
 
             BlockedTags = new string[] { };

+ 55 - 43
MediaBrowser.Server.Implementations/LiveTv/Listings/SchedulesDirect.cs

@@ -151,65 +151,72 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings
         public async Task AddMetadata(ListingsProviderInfo info, List<ChannelInfo> channels,
             CancellationToken cancellationToken)
         {
+            if (string.IsNullOrWhiteSpace(info.ListingsId))
+            {
+                throw new Exception("ListingsId required");
+            }
+
             var token = await GetToken(info, cancellationToken);
 
+            if (string.IsNullOrWhiteSpace(token))
+            {
+                throw new Exception("token required");
+            }
+
             _channelPair.Clear();
 
-            if (!String.IsNullOrWhiteSpace(token) && !String.IsNullOrWhiteSpace(info.ListingsId))
+            var httpOptions = new HttpRequestOptions()
             {
-                var httpOptions = new HttpRequestOptions()
-                {
-                    Url = ApiUrl + "/lineups/" + info.ListingsId,
-                    UserAgent = UserAgent,
-                    CancellationToken = cancellationToken
-                };
+                Url = ApiUrl + "/lineups/" + info.ListingsId,
+                UserAgent = UserAgent,
+                CancellationToken = cancellationToken
+            };
 
-                httpOptions.RequestHeaders["token"] = token;
-                
-                using (var response = await _httpClient.Get(httpOptions))
+            httpOptions.RequestHeaders["token"] = token;
+
+            using (var response = await _httpClient.Get(httpOptions))
+            {
+                var root = _jsonSerializer.DeserializeFromStream<ScheduleDirect.Channel>(response);
+                _logger.Info("Found " + root.map.Count() + " channels on the lineup on ScheduleDirect");
+                _logger.Info("Mapping Stations to Channel");
+                foreach (ScheduleDirect.Map map in root.map)
                 {
-                    var root = _jsonSerializer.DeserializeFromStream<ScheduleDirect.Channel>(response);
-                    _logger.Info("Found " + root.map.Count() + " channels on the lineup on ScheduleDirect");
-                    _logger.Info("Mapping Stations to Channel");
-                    foreach (ScheduleDirect.Map map in root.map)
-                    {
-                        var channel = (map.channel ?? (map.atscMajor + "." + map.atscMinor)).TrimStart('0');
-                        _logger.Debug("Found channel: " + channel + " in Schedules Direct");
-                        var schChannel = root.stations.FirstOrDefault(item => item.stationID == map.stationID);
+                    var channel = (map.channel ?? (map.atscMajor + "." + map.atscMinor)).TrimStart('0');
+                    _logger.Debug("Found channel: " + channel + " in Schedules Direct");
+                    var schChannel = root.stations.FirstOrDefault(item => item.stationID == map.stationID);
 
-                        if (!_channelPair.ContainsKey(channel) && channel != "0.0" && schChannel != null)
-                        {
-                            _channelPair.TryAdd(channel, schChannel);
-                        }
+                    if (!_channelPair.ContainsKey(channel) && channel != "0.0" && schChannel != null)
+                    {
+                        _channelPair.TryAdd(channel, schChannel);
                     }
-                    _logger.Info("Added " + _channelPair.Count() + " channels to the dictionary");
+                }
+                _logger.Info("Added " + _channelPair.Count() + " channels to the dictionary");
 
-                    foreach (ChannelInfo channel in channels)
+                foreach (ChannelInfo channel in channels)
+                {
+                    //  Helper.logger.Info("Modifyin channel " + channel.Number);
+                    if (_channelPair.ContainsKey(channel.Number))
                     {
-                        //  Helper.logger.Info("Modifyin channel " + channel.Number);
-                        if (_channelPair.ContainsKey(channel.Number))
+                        string channelName;
+                        if (_channelPair[channel.Number].logo != null)
                         {
-                            string channelName;
-                            if (_channelPair[channel.Number].logo != null)
-                            {
-                                channel.ImageUrl = _channelPair[channel.Number].logo.URL;
-                                channel.HasImage = true;
-                            }
-                            if (_channelPair[channel.Number].affiliate != null)
-                            {
-                                channelName = _channelPair[channel.Number].affiliate;
-                            }
-                            else
-                            {
-                                channelName = _channelPair[channel.Number].name;
-                            }
-                            channel.Name = channelName;
+                            channel.ImageUrl = _channelPair[channel.Number].logo.URL;
+                            channel.HasImage = true;
+                        }
+                        if (_channelPair[channel.Number].affiliate != null)
+                        {
+                            channelName = _channelPair[channel.Number].affiliate;
                         }
                         else
                         {
-                            _logger.Info("Schedules Direct doesnt have data for channel: " + channel.Number + " " +
-                                         channel.Name);
+                            channelName = _channelPair[channel.Number].name;
                         }
+                        channel.Name = channelName;
+                    }
+                    else
+                    {
+                        _logger.Info("Schedules Direct doesnt have data for channel: " + channel.Number + " " +
+                                     channel.Name);
                     }
                 }
             }
@@ -572,6 +579,11 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings
 
             var token = await GetToken(info, cancellationToken);
 
+            if (string.IsNullOrWhiteSpace(token))
+            {
+                throw new Exception("token required");
+            }
+
             _logger.Info("Headends on account ");
 
             var options = new HttpRequestOptions()

+ 3 - 2
MediaBrowser.Server.Implementations/Localization/Server/server.json

@@ -1459,7 +1459,7 @@
     "ButtonUnlockGuide": "Unlock Guide",
     "LabelEnableFullScreen": "Enable fullscreen mode",
     "LabelEnableChromecastAc3Passthrough": "Enable Chromecast AC3 Passthrough",
-    "LabelSyncPath": "Synced content path:",
+    "OptionSyncToSDCard": "Synced to external SD card",
     "LabelEmail": "Email:",
     "LabelUsername": "Username:",
     "HeaderSignUp": "Sign Up",
@@ -1491,5 +1491,6 @@
     "LabelLineup": "Lineup:",
     "MessageTunerDeviceNotListed": "Is your tuner device not listed? Try installing an external service provider for more Live TV options.",
     "LabelImportOnlyFavoriteChannels": "Restrict to channels marked as favorite",
-    "ImportFavoriteChannelsHelp": "If enabled, only channels that are marked as favorite on the tuner device will be imported."
+    "ImportFavoriteChannelsHelp": "If enabled, only channels that are marked as favorite on the tuner device will be imported.",
+    "ButtonRepeat": "Repeat"
 }