aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MediaBrowser.Model/Configuration/ServerConfiguration.cs138
-rw-r--r--MediaBrowser.Model/Session/GeneralCommandType.cs3
-rw-r--r--MediaBrowser.Model/Users/UserPolicy.cs4
-rw-r--r--MediaBrowser.Server.Implementations/LiveTv/Listings/SchedulesDirect.cs98
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/server.json5
5 files changed, 198 insertions, 50 deletions
diff --git a/MediaBrowser.Model/Configuration/ServerConfiguration.cs b/MediaBrowser.Model/Configuration/ServerConfiguration.cs
index 19403a55e..0a2fabc1b 100644
--- a/MediaBrowser.Model/Configuration/ServerConfiguration.cs
+++ b/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
+ }
+ }
}
};
}
diff --git a/MediaBrowser.Model/Session/GeneralCommandType.cs b/MediaBrowser.Model/Session/GeneralCommandType.cs
index dcb3b20ca..79220f066 100644
--- a/MediaBrowser.Model/Session/GeneralCommandType.cs
+++ b/MediaBrowser.Model/Session/GeneralCommandType.cs
@@ -34,7 +34,6 @@
DisplayContent = 26,
GoToSearch = 27,
DisplayMessage = 28,
- SetRepeatAll = 29,
- SetRepeatOne = 30
+ SetRepeatMode = 29
}
} \ No newline at end of file
diff --git a/MediaBrowser.Model/Users/UserPolicy.cs b/MediaBrowser.Model/Users/UserPolicy.cs
index b3040d6f8..16b4b673d 100644
--- a/MediaBrowser.Model/Users/UserPolicy.cs
+++ b/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[] { };
diff --git a/MediaBrowser.Server.Implementations/LiveTv/Listings/SchedulesDirect.cs b/MediaBrowser.Server.Implementations/LiveTv/Listings/SchedulesDirect.cs
index 5fd9745a1..64599bc58 100644
--- a/MediaBrowser.Server.Implementations/LiveTv/Listings/SchedulesDirect.cs
+++ b/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()
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/server.json b/MediaBrowser.Server.Implementations/Localization/Server/server.json
index e5a36b12f..e06bcea34 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/server.json
+++ b/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"
}