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.cs73
1 files changed, 43 insertions, 30 deletions
diff --git a/MediaBrowser.Server.Implementations/LiveTv/Listings/SchedulesDirect.cs b/MediaBrowser.Server.Implementations/LiveTv/Listings/SchedulesDirect.cs
index 3b7564983..f5b41f3df 100644
--- a/MediaBrowser.Server.Implementations/LiveTv/Listings/SchedulesDirect.cs
+++ b/MediaBrowser.Server.Implementations/LiveTv/Listings/SchedulesDirect.cs
@@ -422,7 +422,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings
return images;
}
- public async Task<List<NameIdPair>> GetHeadends(ListingsProviderInfo info, CancellationToken cancellationToken)
+ public async Task<List<NameIdPair>> GetHeadends(ListingsProviderInfo info, string location, CancellationToken cancellationToken)
{
var token = await GetToken(info, cancellationToken);
@@ -437,7 +437,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings
var options = new HttpRequestOptions()
{
- Url = ApiUrl + "/headends?country=USA&postalcode=" + info.ZipCode,
+ Url = ApiUrl + "/headends?country=USA&postalcode=" + location,
UserAgent = UserAgent,
CancellationToken = cancellationToken
};
@@ -484,43 +484,43 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings
private async Task<string> GetToken(ListingsProviderInfo info, CancellationToken cancellationToken)
{
- await _tokenSemaphore.WaitAsync(cancellationToken).ConfigureAwait(false);
- try
- {
- var username = info.Username;
+ var username = info.Username;
- // Reset the token if there's no username
- if (string.IsNullOrWhiteSpace(username))
- {
- return null;
- }
+ // Reset the token if there's no username
+ if (string.IsNullOrWhiteSpace(username))
+ {
+ return null;
+ }
- var password = info.Password;
- if (string.IsNullOrWhiteSpace(password))
- {
- return null;
- }
+ var password = info.Password;
+ if (string.IsNullOrWhiteSpace(password))
+ {
+ return null;
+ }
- NameValuePair savedToken = null;
- if (!_tokens.TryGetValue(username, out savedToken))
- {
- savedToken = new NameValuePair();
- _tokens.TryAdd(username, savedToken);
- }
+ NameValuePair savedToken = null;
+ if (!_tokens.TryGetValue(username, out savedToken))
+ {
+ savedToken = new NameValuePair();
+ _tokens.TryAdd(username, savedToken);
+ }
- if (!string.IsNullOrWhiteSpace(savedToken.Name) && !string.IsNullOrWhiteSpace(savedToken.Value))
+ if (!string.IsNullOrWhiteSpace(savedToken.Name) && !string.IsNullOrWhiteSpace(savedToken.Value))
+ {
+ long ticks;
+ if (long.TryParse(savedToken.Value, NumberStyles.Any, CultureInfo.InvariantCulture, out ticks))
{
- long ticks;
- if (long.TryParse(savedToken.Value, NumberStyles.Any, CultureInfo.InvariantCulture, out ticks))
+ // If it's under 24 hours old we can still use it
+ if ((DateTime.UtcNow.Ticks - ticks) < TimeSpan.FromHours(24).Ticks)
{
- // If it's under 24 hours old we can still use it
- if ((DateTime.UtcNow.Ticks - ticks) < TimeSpan.FromHours(24).Ticks)
- {
- return savedToken.Name;
- }
+ return savedToken.Name;
}
}
+ }
+ await _tokenSemaphore.WaitAsync(cancellationToken).ConfigureAwait(false);
+ try
+ {
var result = await GetTokenInternal(username, password, cancellationToken).ConfigureAwait(false);
savedToken.Name = result;
savedToken.Value = DateTime.UtcNow.Ticks.ToString(CultureInfo.InvariantCulture);
@@ -563,6 +563,11 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings
get { return "Schedules Direct"; }
}
+ public string Type
+ {
+ get { return "SchedulesDirect"; }
+ }
+
public class ScheduleDirect
{
public class Token
@@ -842,5 +847,13 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings
}
+ public async Task Validate(ListingsProviderInfo info)
+ {
+ }
+
+ public Task<List<NameIdPair>> GetLineups(ListingsProviderInfo info, string location)
+ {
+ return GetHeadends(info, location, CancellationToken.None);
+ }
}
}