aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/LiveTv/Listings/SchedulesDirect.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Server.Implementations/LiveTv/Listings/SchedulesDirect.cs')
-rw-r--r--MediaBrowser.Server.Implementations/LiveTv/Listings/SchedulesDirect.cs44
1 files changed, 28 insertions, 16 deletions
diff --git a/MediaBrowser.Server.Implementations/LiveTv/Listings/SchedulesDirect.cs b/MediaBrowser.Server.Implementations/LiveTv/Listings/SchedulesDirect.cs
index 64599bc58..ffafe5979 100644
--- a/MediaBrowser.Server.Implementations/LiveTv/Listings/SchedulesDirect.cs
+++ b/MediaBrowser.Server.Implementations/LiveTv/Listings/SchedulesDirect.cs
@@ -35,6 +35,22 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings
_httpClient = httpClient;
}
+ private List<string> GetScheduleRequestDates(DateTime startDateUtc, DateTime endDateUtc)
+ {
+ List<string> dates = new List<string>();
+
+ var start = new List<DateTime> { startDateUtc, startDateUtc.ToLocalTime() }.Min();
+ var end = new List<DateTime> { endDateUtc, endDateUtc.ToLocalTime() }.Max();
+
+ while (start.DayOfYear <= end.Day)
+ {
+ dates.Add(start.ToString("yyyy-MM-dd"));
+ start = start.AddDays(1);
+ }
+
+ return dates;
+ }
+
public async Task<IEnumerable<ProgramInfo>> GetProgramsAsync(ListingsProviderInfo info, string channelNumber, DateTime startDateUtc, DateTime endDateUtc, CancellationToken cancellationToken)
{
List<ProgramInfo> programsInfo = new List<ProgramInfo>();
@@ -60,15 +76,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings
httpOptions.RequestHeaders["token"] = token;
- List<string> dates = new List<string>();
- int numberOfDay = 0;
- DateTime lastEntry = startDateUtc;
- while (lastEntry != endDateUtc)
- {
- lastEntry = startDateUtc.AddDays(numberOfDay);
- dates.Add(lastEntry.ToString("yyyy-MM-dd"));
- numberOfDay++;
- }
+ var dates = GetScheduleRequestDates(startDateUtc, endDateUtc);
ScheduleDirect.Station station = null;
@@ -97,8 +105,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings
StreamReader reader = new StreamReader(response.Content);
string responseString = reader.ReadToEnd();
var dailySchedules = _jsonSerializer.DeserializeFromString<List<ScheduleDirect.Day>>(responseString);
- _logger.Debug("Found " + dailySchedules.Count() + " programs on " + channelNumber +
- " ScheduleDirect");
+ _logger.Debug("Found " + dailySchedules.Count() + " programs on " + channelNumber + " ScheduleDirect");
httpOptions = new HttpRequestOptions()
{
@@ -234,10 +241,17 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings
bool repeat = (programInfo.@new == null);
string newID = programInfo.programID + "T" + startAt.Ticks + "C" + channel;
-
if (programInfo.audioProperties != null)
{
- if (programInfo.audioProperties.Exists(item => item == "stereo"))
+ if (programInfo.audioProperties.Exists(item => string.Equals(item, "dd 5.1", StringComparison.OrdinalIgnoreCase)))
+ {
+ audioType = ProgramAudio.DolbyDigital;
+ }
+ else if (programInfo.audioProperties.Exists(item => string.Equals(item, "dd", StringComparison.OrdinalIgnoreCase)))
+ {
+ audioType = ProgramAudio.DolbyDigital;
+ }
+ else if (programInfo.audioProperties.Exists(item => string.Equals(item, "stereo", StringComparison.OrdinalIgnoreCase)))
{
audioType = ProgramAudio.Stereo;
}
@@ -286,7 +300,6 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings
imageLink = details.images;
}
-
var info = new ProgramInfo
{
ChannelId = channel,
@@ -554,7 +567,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings
};
httpOptions.RequestHeaders["token"] = token;
-
+
using (var response = await _httpClient.SendAsync(httpOptions, "PUT"))
{
}
@@ -915,6 +928,5 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings
}
}
-
}
}