update schedules direct

This commit is contained in:
Luke Pulverenti 2015-10-01 12:28:24 -04:00
parent ec7e90bcb7
commit 69888991f3
4 changed files with 23 additions and 7 deletions

View file

@ -26,6 +26,7 @@ using System.IO;
using System.Linq; using System.Linq;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using MediaBrowser.Common.Extensions;
namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
{ {
@ -673,14 +674,15 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
recordPath = Path.Combine(recordPath, recordingFileName); recordPath = Path.Combine(recordPath, recordingFileName);
_fileSystem.CreateDirectory(Path.GetDirectoryName(recordPath)); _fileSystem.CreateDirectory(Path.GetDirectoryName(recordPath));
var recording = _recordingProvider.GetAll().FirstOrDefault(x => string.Equals(x.ProgramId, info.Id, StringComparison.OrdinalIgnoreCase)); var recordingId = info.Id.GetMD5().ToString("N");
var recording = _recordingProvider.GetAll().FirstOrDefault(x => string.Equals(x.Id, recordingId, StringComparison.OrdinalIgnoreCase));
if (recording == null) if (recording == null)
{ {
recording = new RecordingInfo recording = new RecordingInfo
{ {
ChannelId = info.ChannelId, ChannelId = info.ChannelId,
Id = Guid.NewGuid().ToString("N"), Id = recordingId,
StartDate = info.StartDate, StartDate = info.StartDate,
EndDate = info.EndDate, EndDate = info.EndDate,
Genres = info.Genres, Genres = info.Genres,

View file

@ -200,7 +200,18 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings
_logger.Info("Mapping Stations to Channel"); _logger.Info("Mapping Stations to Channel");
foreach (ScheduleDirect.Map map in root.map) foreach (ScheduleDirect.Map map in root.map)
{ {
var channel = (map.channel ?? (map.atscMajor + "." + map.atscMinor)).TrimStart('0'); var channel = map.logicalChannelNumber;
if (string.IsNullOrWhiteSpace(channel))
{
channel = map.channel;
}
if (string.IsNullOrWhiteSpace(channel))
{
channel = (map.atscMajor + "." + map.atscMinor);
}
channel = channel.TrimStart('0');
_logger.Debug("Found channel: " + channel + " in Schedules Direct"); _logger.Debug("Found channel: " + channel + " in Schedules Direct");
var schChannel = root.stations.FirstOrDefault(item => item.stationID == map.stationID); var schChannel = root.stations.FirstOrDefault(item => item.stationID == map.stationID);
@ -741,6 +752,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings
{ {
public string stationID { get; set; } public string stationID { get; set; }
public string channel { get; set; } public string channel { get; set; }
public string logicalChannelNumber { get; set; }
public int uhfVhf { get; set; } public int uhfVhf { get; set; }
public int atscMajor { get; set; } public int atscMajor { get; set; }
public int atscMinor { get; set; } public int atscMinor { get; set; }

View file

@ -49,7 +49,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts
var list = result.ToList(); var list = result.ToList();
Logger.Debug("Channels from {0}: {1}", tuner.Url, JsonSerializer.SerializeToString(list)); Logger.Debug("Channels from {0}: {1}", tuner.Url, JsonSerializer.SerializeToString(list));
if (!string.IsNullOrWhiteSpace(key)) if (!string.IsNullOrWhiteSpace(key) && list.Count > 0)
{ {
cache = cache ?? new ChannelCache(); cache = cache ?? new ChannelCache();
cache.Date = DateTime.UtcNow; cache.Date = DateTime.UtcNow;

View file

@ -86,7 +86,8 @@ namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.HdHomerun
Url = string.Format("{0}/", GetApiUrl(info, false)), Url = string.Format("{0}/", GetApiUrl(info, false)),
CancellationToken = cancellationToken, CancellationToken = cancellationToken,
CacheLength = TimeSpan.FromDays(1), CacheLength = TimeSpan.FromDays(1),
CacheMode = CacheMode.Unconditional CacheMode = CacheMode.Unconditional,
TimeoutMs = Convert.ToInt32(TimeSpan.FromSeconds(5).TotalMilliseconds)
})) }))
{ {
using (var sr = new StreamReader(stream, System.Text.Encoding.UTF8)) using (var sr = new StreamReader(stream, System.Text.Encoding.UTF8))
@ -101,7 +102,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.HdHomerun
} }
} }
return null; return model;
} }
public async Task<List<LiveTvTunerInfo>> GetTunerInfos(TunerHostInfo info, CancellationToken cancellationToken) public async Task<List<LiveTvTunerInfo>> GetTunerInfos(TunerHostInfo info, CancellationToken cancellationToken)
@ -111,7 +112,8 @@ namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.HdHomerun
using (var stream = await _httpClient.Get(new HttpRequestOptions() using (var stream = await _httpClient.Get(new HttpRequestOptions()
{ {
Url = string.Format("{0}/tuners.html", GetApiUrl(info, false)), Url = string.Format("{0}/tuners.html", GetApiUrl(info, false)),
CancellationToken = cancellationToken CancellationToken = cancellationToken,
TimeoutMs = Convert.ToInt32(TimeSpan.FromSeconds(5).TotalMilliseconds)
})) }))
{ {
var tuners = new List<LiveTvTunerInfo>(); var tuners = new List<LiveTvTunerInfo>();