Suggestions from review

pull/6501/head
Cody Robibero 4 years ago
parent 47e24a2cf7
commit 0587b539ec

@ -9,6 +9,7 @@ using System.Globalization;
using System.Linq; using System.Linq;
using System.Net; using System.Net;
using System.Net.Http; using System.Net.Http;
using System.Net.Http.Headers;
using System.Net.Http.Json; using System.Net.Http.Json;
using System.Net.Mime; using System.Net.Mime;
using System.Text; using System.Text;
@ -113,18 +114,29 @@ namespace Emby.Server.Implementations.LiveTv.Listings
using var response = await Send(options, true, info, cancellationToken).ConfigureAwait(false); using var response = await Send(options, true, info, cancellationToken).ConfigureAwait(false);
await using var responseStream = await response.Content.ReadAsStreamAsync(cancellationToken).ConfigureAwait(false); await using var responseStream = await response.Content.ReadAsStreamAsync(cancellationToken).ConfigureAwait(false);
var dailySchedules = await JsonSerializer.DeserializeAsync<IReadOnlyList<DayDto>>(responseStream, _jsonOptions, cancellationToken).ConfigureAwait(false); var dailySchedules = await JsonSerializer.DeserializeAsync<IReadOnlyList<DayDto>>(responseStream, _jsonOptions, cancellationToken).ConfigureAwait(false);
_logger.LogDebug("Found {ScheduleCount} programs on {ChannelID} ScheduleDirect", dailySchedules!.Count, channelId); if (dailySchedules == null)
{
return Array.Empty<ProgramInfo>();
}
_logger.LogDebug("Found {ScheduleCount} programs on {ChannelID} ScheduleDirect", dailySchedules.Count, channelId);
using var programRequestOptions = new HttpRequestMessage(HttpMethod.Post, ApiUrl + "/programs"); using var programRequestOptions = new HttpRequestMessage(HttpMethod.Post, ApiUrl + "/programs");
programRequestOptions.Headers.TryAddWithoutValidation("token", token); programRequestOptions.Headers.TryAddWithoutValidation("token", token);
var programIds = dailySchedules.SelectMany(d => d.Programs.Select(s => s.ProgramId)).Distinct(); var programIds = dailySchedules.SelectMany(d => d.Programs.Select(s => s.ProgramId)).Distinct();
programRequestOptions.Content = new StringContent(JsonSerializer.Serialize(programIds), Encoding.UTF8, MediaTypeNames.Application.Json); programRequestOptions.Content = new ByteArrayContent(JsonSerializer.SerializeToUtf8Bytes(programIds, _jsonOptions));
programRequestOptions.Content.Headers.ContentType = MediaTypeHeaderValue.Parse(MediaTypeNames.Application.Json);
using var innerResponse = await Send(programRequestOptions, true, info, cancellationToken).ConfigureAwait(false); using var innerResponse = await Send(programRequestOptions, true, info, cancellationToken).ConfigureAwait(false);
await using var innerResponseStream = await innerResponse.Content.ReadAsStreamAsync(cancellationToken).ConfigureAwait(false); await using var innerResponseStream = await innerResponse.Content.ReadAsStreamAsync(cancellationToken).ConfigureAwait(false);
var programDetails = await JsonSerializer.DeserializeAsync<IReadOnlyList<ProgramDetailsDto>>(innerResponseStream, _jsonOptions, cancellationToken).ConfigureAwait(false); var programDetails = await JsonSerializer.DeserializeAsync<IReadOnlyList<ProgramDetailsDto>>(innerResponseStream, _jsonOptions, cancellationToken).ConfigureAwait(false);
var programDict = programDetails!.ToDictionary(p => p.ProgramId, y => y); if (programDetails == null)
{
return Array.Empty<ProgramInfo>();
}
var programDict = programDetails.ToDictionary(p => p.ProgramId, y => y);
var programIdsWithImages = programDetails var programIdsWithImages = programDetails
.Where(p => p.HasImageArtwork).Select(p => p.ProgramId) .Where(p => p.HasImageArtwork).Select(p => p.ProgramId)
@ -775,7 +787,12 @@ namespace Emby.Server.Implementations.LiveTv.Listings
using var httpResponse = await Send(options, true, info, cancellationToken).ConfigureAwait(false); using var httpResponse = await Send(options, true, info, cancellationToken).ConfigureAwait(false);
await using var stream = await httpResponse.Content.ReadAsStreamAsync(cancellationToken).ConfigureAwait(false); await using var stream = await httpResponse.Content.ReadAsStreamAsync(cancellationToken).ConfigureAwait(false);
var root = await JsonSerializer.DeserializeAsync<ChannelDto>(stream, _jsonOptions, cancellationToken).ConfigureAwait(false); var root = await JsonSerializer.DeserializeAsync<ChannelDto>(stream, _jsonOptions, cancellationToken).ConfigureAwait(false);
_logger.LogInformation("Found {ChannelCount} channels on the lineup on ScheduleDirect", root!.Map.Count); if (root == null)
{
return new List<ChannelInfo>();
}
_logger.LogInformation("Found {ChannelCount} channels on the lineup on ScheduleDirect", root.Map.Count);
_logger.LogInformation("Mapping Stations to Channel"); _logger.LogInformation("Mapping Stations to Channel");
var allStations = root.Stations; var allStations = root.Stations;

@ -16,9 +16,6 @@
<None Include="Test Data\**\*.*"> <None Include="Test Data\**\*.*">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None> </None>
<None Update="LiveTv\SchedulesDirect\TestData\*">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

@ -23,7 +23,7 @@ namespace Jellyfin.Server.Implementations.Tests.LiveTv.SchedulesDirect
[Fact] [Fact]
public void Deserialize_Token_Response_Live_Success() public void Deserialize_Token_Response_Live_Success()
{ {
var bytes = File.ReadAllBytes("LiveTv/SchedulesDirect/TestData/token_live_response.json"); var bytes = File.ReadAllBytes("Test Data/SchedulesDirect/token_live_response.json");
var tokenDto = JsonSerializer.Deserialize<TokenDto>(bytes); var tokenDto = JsonSerializer.Deserialize<TokenDto>(bytes);
Assert.NotNull(tokenDto); Assert.NotNull(tokenDto);
@ -40,7 +40,7 @@ namespace Jellyfin.Server.Implementations.Tests.LiveTv.SchedulesDirect
[Fact] [Fact]
public void Deserialize_Token_Response_Offline_Success() public void Deserialize_Token_Response_Offline_Success()
{ {
var bytes = File.ReadAllBytes("LiveTv/SchedulesDirect/TestData/token_offline_response.json"); var bytes = File.ReadAllBytes("Test Data/SchedulesDirect/token_offline_response.json");
var tokenDto = JsonSerializer.Deserialize<TokenDto>(bytes); var tokenDto = JsonSerializer.Deserialize<TokenDto>(bytes);
Assert.NotNull(tokenDto); Assert.NotNull(tokenDto);
@ -58,7 +58,7 @@ namespace Jellyfin.Server.Implementations.Tests.LiveTv.SchedulesDirect
[Fact] [Fact]
public void Serialize_Schedule_Request_Success() public void Serialize_Schedule_Request_Success()
{ {
var expectedString = File.ReadAllText("LiveTv/SchedulesDirect/TestData/schedules_request.json").Trim(); var expectedString = File.ReadAllText("Test Data/SchedulesDirect/schedules_request.json").Trim();
var requestObject = new RequestScheduleForChannelDto[] var requestObject = new RequestScheduleForChannelDto[]
{ {
@ -82,12 +82,7 @@ namespace Jellyfin.Server.Implementations.Tests.LiveTv.SchedulesDirect
} }
}; };
var jsonOptions = new JsonSerializerOptions(_jsonOptions) var requestString = JsonSerializer.Serialize(requestObject, _jsonOptions);
{
WriteIndented = true
};
var requestString = JsonSerializer.Serialize(requestObject, jsonOptions);
Assert.Equal(expectedString, requestString); Assert.Equal(expectedString, requestString);
} }
@ -97,7 +92,7 @@ namespace Jellyfin.Server.Implementations.Tests.LiveTv.SchedulesDirect
[Fact] [Fact]
public void Deserialize_Schedule_Response_Success() public void Deserialize_Schedule_Response_Success()
{ {
var bytes = File.ReadAllBytes("LiveTv/SchedulesDirect/TestData/schedules_response.json"); var bytes = File.ReadAllBytes("Test Data/SchedulesDirect/schedules_response.json");
var days = JsonSerializer.Deserialize<IReadOnlyList<DayDto>>(bytes); var days = JsonSerializer.Deserialize<IReadOnlyList<DayDto>>(bytes);
Assert.NotNull(days); Assert.NotNull(days);
@ -125,7 +120,7 @@ namespace Jellyfin.Server.Implementations.Tests.LiveTv.SchedulesDirect
[Fact] [Fact]
public void Deserialize_Program_Response_Success() public void Deserialize_Program_Response_Success()
{ {
var bytes = File.ReadAllBytes("LiveTv/SchedulesDirect/TestData/programs_response.json"); var bytes = File.ReadAllBytes("Test Data/SchedulesDirect/programs_response.json");
var programDtos = JsonSerializer.Deserialize<IReadOnlyList<ProgramDetailsDto>>(bytes); var programDtos = JsonSerializer.Deserialize<IReadOnlyList<ProgramDetailsDto>>(bytes);
Assert.NotNull(programDtos); Assert.NotNull(programDtos);
@ -162,7 +157,7 @@ namespace Jellyfin.Server.Implementations.Tests.LiveTv.SchedulesDirect
[Fact] [Fact]
public void Deserialize_Metadata_Programs_Response_Success() public void Deserialize_Metadata_Programs_Response_Success()
{ {
var bytes = File.ReadAllBytes("LiveTv/SchedulesDirect/TestData/metadata_programs_response.json"); var bytes = File.ReadAllBytes("Test Data/SchedulesDirect/metadata_programs_response.json");
var showImagesDtos = JsonSerializer.Deserialize<IReadOnlyList<ShowImagesDto>>(bytes); var showImagesDtos = JsonSerializer.Deserialize<IReadOnlyList<ShowImagesDto>>(bytes);
Assert.NotNull(showImagesDtos); Assert.NotNull(showImagesDtos);
@ -186,7 +181,7 @@ namespace Jellyfin.Server.Implementations.Tests.LiveTv.SchedulesDirect
[Fact] [Fact]
public void Deserialize_Headends_Response_Success() public void Deserialize_Headends_Response_Success()
{ {
var bytes = File.ReadAllBytes("LiveTv/SchedulesDirect/TestData/headends_response.json"); var bytes = File.ReadAllBytes("Test Data/SchedulesDirect/headends_response.json");
var headendsDtos = JsonSerializer.Deserialize<IReadOnlyList<HeadendsDto>>(bytes); var headendsDtos = JsonSerializer.Deserialize<IReadOnlyList<HeadendsDto>>(bytes);
Assert.NotNull(headendsDtos); Assert.NotNull(headendsDtos);
@ -206,7 +201,7 @@ namespace Jellyfin.Server.Implementations.Tests.LiveTv.SchedulesDirect
[Fact] [Fact]
public void Deserialize_Lineups_Response_Success() public void Deserialize_Lineups_Response_Success()
{ {
var bytes = File.ReadAllBytes("LiveTv/SchedulesDirect/TestData/lineups_response.json"); var bytes = File.ReadAllBytes("Test Data/SchedulesDirect/lineups_response.json");
var lineupsDto = JsonSerializer.Deserialize<LineupsDto>(bytes); var lineupsDto = JsonSerializer.Deserialize<LineupsDto>(bytes);
Assert.NotNull(lineupsDto); Assert.NotNull(lineupsDto);
@ -230,7 +225,7 @@ namespace Jellyfin.Server.Implementations.Tests.LiveTv.SchedulesDirect
[Fact] [Fact]
public void Deserialize_Lineup_Response_Success() public void Deserialize_Lineup_Response_Success()
{ {
var bytes = File.ReadAllBytes("LiveTv/SchedulesDirect/TestData/lineup_response.json"); var bytes = File.ReadAllBytes("Test Data/SchedulesDirect/lineup_response.json");
var channelDto = JsonSerializer.Deserialize<ChannelDto>(bytes); var channelDto = JsonSerializer.Deserialize<ChannelDto>(bytes);
Assert.NotNull(channelDto); Assert.NotNull(channelDto);

@ -1,113 +0,0 @@
[
{
"headend": "CA00053",
"transport": "Cable",
"location": "Beverly Hills",
"lineups": [
{
"name": "Time Warner Cable - Cable",
"lineup": "USA-CA00053-DEFAULT",
"uri": "/20141201/lineups/USA-CA00053-DEFAULT"
},
{
"name": "Time Warner Cable - Digital",
"lineup": "USA-CA00053-X",
"uri": "/20141201/lineups/USA-CA00053-X"
}
]
},
{
"headend": "CA61222",
"transport": "Cable",
"location": "Beverly Hills",
"lineups": [
{
"name": "Mulholland Estates - Cable",
"lineup": "USA-CA61222-DEFAULT",
"uri": "/20141201/lineups/USA-CA61222-DEFAULT"
}
]
},
{
"headend": "CA66511",
"transport": "Cable",
"location": "Los Angeles",
"lineups": [
{
"name": "AT&T U-verse TV - Digital",
"lineup": "USA-CA66511-X",
"uri": "/20141201/lineups/USA-CA66511-X"
}
]
},
{
"headend": "CA67309",
"transport": "Cable",
"location": "Westchester",
"lineups": [
{
"name": "Time Warner Cable Sherman Oaks - Cable",
"lineup": "USA-CA67309-DEFAULT",
"uri": "/20141201/lineups/USA-CA67309-DEFAULT"
},
{
"name": "Time Warner Cable Sherman Oaks - Digital",
"lineup": "USA-CA67309-X",
"uri": "/20141201/lineups/USA-CA67309-X"
}
]
},
{
"headend": "CA67310",
"transport": "Cable",
"location": "Eagle Rock",
"lineups": [
{
"name": "Time Warner Cable City of Los Angeles - Cable",
"lineup": "USA-CA67310-DEFAULT",
"uri": "/20141201/lineups/USA-CA67310-DEFAULT"
},
{
"name": "Time Warner Cable City of Los Angeles - Digital",
"lineup": "USA-CA67310-X",
"uri": "/20141201/lineups/USA-CA67310-X"
}
]
},
{
"headend": "DISH803",
"transport": "Satellite",
"location": "Los Angeles",
"lineups": [
{
"name": "DISH Los Angeles - Satellite",
"lineup": "USA-DISH803-DEFAULT",
"uri": "/20141201/lineups/USA-DISH803-DEFAULT"
}
]
},
{
"headend": "DITV803",
"transport": "Satellite",
"location": "Los Angeles",
"lineups": [
{
"name": "DIRECTV Los Angeles - Satellite",
"lineup": "USA-DITV803-DEFAULT",
"uri": "/20141201/lineups/USA-DITV803-DEFAULT"
}
]
},
{
"headend": "90210",
"transport": "Antenna",
"location": "90210",
"lineups": [
{
"name": "Antenna",
"lineup": "USA-OTA-90210",
"uri": "/20141201/lineups/USA-OTA-90210"
}
]
}
]

@ -1,18 +0,0 @@
{
"map": [
{
"stationID": "24326",
"channel": "001",
"providerCallsign": "BBC ONE South",
"logicalChannelNumber": "1",
"matchType": "providerCallsign"
},
{
"stationID": "17154",
"channel": "002",
"providerCallsign": "BBC TWO",
"logicalChannelNumber": "2",
"matchType": "providerCallsign"
}
]
}

@ -1,40 +0,0 @@
{
"code": 0,
"serverID": "20141201.web.1",
"datetime": "2015-04-17T14:22:17Z",
"lineups": [
{
"lineup": "GBR-0001317-DEFAULT",
"name": "Freeview - Carlton - LWT (Southeast)",
"transport": "DVB-T",
"location": "London",
"uri": "/20141201/lineups/GBR-0001317-DEFAULT"
},
{
"lineup": "USA-IL57303-X",
"name": "Comcast Waukegan/Lake Forest Area - Digital",
"transport": "Cable",
"location": "Lake Forest",
"uri": "/20141201/lineups/USA-IL57303-X"
},
{
"lineup": "USA-NY67791-X",
"name": "Verizon Fios Queens - Digital",
"transport": "Cable",
"location": "Fresh Meadows",
"uri": "/20141201/lineups/USA-NY67791-X"
},
{
"lineup": "USA-OTA-60030",
"name": "Local Over the Air Broadcast",
"transport": "Antenna",
"location": "60030",
"uri": "/20141201/lineups/USA-OTA-60030"
},
{
"lineup": "USA-WI61859-DEFAULT",
"name": "DELETED LINEUP",
"isDeleted": true
}
]
}

@ -1,51 +0,0 @@
[
{
"programID": "SH00712240",
"data": [
{
"width": "135",
"height": "180",
"uri": "assets/p282288_b_v2_aa.jpg",
"size": "Sm",
"aspect": "3x4",
"category": "Banner-L3",
"text": "yes",
"primary": "true",
"tier": "Series"
},
{
"width": "720",
"height": "540",
"uri": "assets/p282288_b_h6_aa.jpg",
"size": "Lg",
"aspect": "4x3",
"category": "Banner-L3",
"text": "yes",
"primary": "true",
"tier": "Series"
},
{
"width": "960",
"height": "1440",
"uri": "assets/p282288_b_v8_aa.jpg",
"size": "Ms",
"aspect": "2x3",
"category": "Banner-L3",
"text": "yes",
"primary": "true",
"tier": "Series"
},
{
"width": "180",
"height": "135",
"uri": "assets/p282288_b_h5_aa.jpg",
"size": "Sm",
"aspect": "4x3",
"category": "Banner-L3",
"text": "yes",
"primary": "true",
"tier": "Series"
}
]
}
]

@ -1,245 +0,0 @@
[
{
"programID": "EP000000060003",
"titles": [{
"title120": "'Allo 'Allo!"
}],
"eventDetails": {
"subType": "Series"
},
"descriptions": {
"description1000": [{
"descriptionLanguage": "en",
"description": "A disguised British Intelligence officer is sent to help the airmen."
}]
},
"originalAirDate": "1985-11-04",
"genres": ["Sitcom"],
"episodeTitle150": "The Poloceman Cometh",
"metadata": [{
"Gracenote": {
"season": 2,
"episode": 3
}
}],
"cast": [{
"personId": "383774",
"nameId": "392649",
"name": "Gorden Kaye",
"role": "Actor",
"billingOrder": "01"
}, {
"personId": "246840",
"nameId": "250387",
"name": "Carmen Silvera",
"role": "Actor",
"billingOrder": "02"
}, {
"personId": "376955",
"nameId": "385830",
"name": "Rose Hill",
"role": "Actor",
"billingOrder": "03"
}, {
"personId": "259773",
"nameId": "263340",
"name": "Vicki Michelle",
"role": "Actor",
"billingOrder": "04"
}, {
"personId": "353113",
"nameId": "361987",
"name": "Kirsten Cooke",
"role": "Actor",
"billingOrder": "05"
}, {
"personId": "77787",
"nameId": "77787",
"name": "Richard Marner",
"role": "Actor",
"billingOrder": "06"
}, {
"personId": "230921",
"nameId": "234193",
"name": "Guy Siner",
"role": "Actor",
"billingOrder": "07"
}, {
"personId": "374934",
"nameId": "383809",
"name": "Kim Hartman",
"role": "Actor",
"billingOrder": "08"
}, {
"personId": "369151",
"nameId": "378026",
"name": "Richard Gibson",
"role": "Actor",
"billingOrder": "09"
}, {
"personId": "343690",
"nameId": "352564",
"name": "Arthur Bostrom",
"role": "Actor",
"billingOrder": "10"
}, {
"personId": "352557",
"nameId": "361431",
"name": "John D. Collins",
"role": "Actor",
"billingOrder": "11"
}, {
"personId": "605275",
"nameId": "627734",
"name": "Nicholas Frankau",
"role": "Actor",
"billingOrder": "12"
}, {
"personId": "373394",
"nameId": "382269",
"name": "Jack Haig",
"role": "Actor",
"billingOrder": "13"
}],
"crew": [{
"personId": "354407",
"nameId": "363281",
"name": "David Croft",
"role": "Director",
"billingOrder": "01"
}, {
"personId": "354407",
"nameId": "363281",
"name": "David Croft",
"role": "Writer",
"billingOrder": "02"
}, {
"personId": "105145",
"nameId": "105145",
"name": "Jeremy Lloyd",
"role": "Writer",
"billingOrder": "03"
}],
"showType": "Series",
"hasImageArtwork": true,
"md5": "Jo5NKxoo44xRvBCAq8QT2A"
},
{
"programID": "EP000000510142",
"titles": [{
"title120": "A Different World"
}],
"eventDetails": {
"subType": "Series"
},
"descriptions": {
"description1000": [{
"descriptionLanguage": "en",
"description": "Whitley and Dwayne tell new students about their honeymoon in Los Angeles."
}]
},
"originalAirDate": "1992-09-24",
"genres": ["Sitcom"],
"episodeTitle150": "Honeymoon in L.A.",
"metadata": [{
"Gracenote": {
"season": 6,
"episode": 1
}
}],
"cast": [{
"personId": "700",
"nameId": "700",
"name": "Jasmine Guy",
"role": "Actor",
"billingOrder": "01"
}, {
"personId": "729",
"nameId": "729",
"name": "Kadeem Hardison",
"role": "Actor",
"billingOrder": "02"
}, {
"personId": "120",
"nameId": "120",
"name": "Darryl M. Bell",
"role": "Actor",
"billingOrder": "03"
}, {
"personId": "1729",
"nameId": "1729",
"name": "Cree Summer",
"role": "Actor",
"billingOrder": "04"
}, {
"personId": "217",
"nameId": "217",
"name": "Charnele Brown",
"role": "Actor",
"billingOrder": "05"
}, {
"personId": "1811",
"nameId": "1811",
"name": "Glynn Turman",
"role": "Actor",
"billingOrder": "06"
}, {
"personId": "1232",
"nameId": "1232",
"name": "Lou Myers",
"role": "Actor",
"billingOrder": "07"
}, {
"personId": "1363",
"nameId": "1363",
"name": "Jada Pinkett",
"role": "Guest Star",
"billingOrder": "08"
}, {
"personId": "222967",
"nameId": "225536",
"name": "Ajai Sanders",
"role": "Guest Star",
"billingOrder": "09"
}, {
"personId": "181744",
"nameId": "183292",
"name": "Karen Malina White",
"role": "Guest Star",
"billingOrder": "10"
}, {
"personId": "305017",
"nameId": "318897",
"name": "Patrick Y. Malone",
"role": "Guest Star",
"billingOrder": "11"
}, {
"personId": "9841",
"nameId": "9841",
"name": "Bumper Robinson",
"role": "Guest Star",
"billingOrder": "12"
}, {
"personId": "426422",
"nameId": "435297",
"name": "Sister Souljah",
"role": "Guest Star",
"billingOrder": "13"
}, {
"personId": "25",
"nameId": "25",
"name": "Debbie Allen",
"role": "Guest Star",
"billingOrder": "14"
}, {
"personId": "668",
"nameId": "668",
"name": "Gilbert Gottfried",
"role": "Guest Star",
"billingOrder": "15"
}],
"showType": "Series",
"hasImageArtwork": true,
"md5": "P5kz0QmCeYxIA+yL0H4DWw"
}
]

@ -1,16 +0,0 @@
[
{
"stationID": "20454",
"date": [
"2015-03-13",
"2015-03-17"
]
},
{
"stationID": "10021",
"date": [
"2015-03-12",
"2015-03-13"
]
}
]

@ -1,35 +0,0 @@
[
{
"stationID": "20454",
"programs": [
{
"programID": "SH005371070000",
"airDateTime": "2015-03-03T00:00:00Z",
"duration": 1800,
"md5": "Sy8HEMBPcuiAx3FBukUhKQ",
"new": true,
"audioProperties": [
"stereo",
"cc"
],
"videoProperties": [
"hdtv"
]
},
{
"programID": "EP000014577244",
"airDateTime": "2015-03-03T00:30:00Z",
"duration": 1800,
"md5": "25DNXVXO192JI7Y9vSW9lQ",
"new": true,
"audioProperties": [
"stereo",
"cc"
],
"videoProperties": [
"hdtv"
]
}
]
}
]

@ -1,7 +0,0 @@
{
"code": 0,
"message": "OK",
"serverID": "AWS-SD-web.1",
"datetime": "2016-08-23T13:55:25Z",
"token": "f3fca79989cafe7dead71beefedc812b"
}

@ -1,8 +0,0 @@
{
"response": "SERVICE_OFFLINE",
"code": 3000,
"serverID": "20141201.web.1",
"message": "Server offline for maintenance.",
"datetime": "2015-04-23T00:03:32Z",
"token": "CAFEDEADBEEFCAFEDEADBEEFCAFEDEADBEEFCAFE"
}

@ -0,0 +1 @@
[{"headend":"CA00053","transport":"Cable","location":"Beverly Hills","lineups":[{"name":"Time Warner Cable - Cable","lineup":"USA-CA00053-DEFAULT","uri":"/20141201/lineups/USA-CA00053-DEFAULT"},{"name":"Time Warner Cable - Digital","lineup":"USA-CA00053-X","uri":"/20141201/lineups/USA-CA00053-X"}]},{"headend":"CA61222","transport":"Cable","location":"Beverly Hills","lineups":[{"name":"Mulholland Estates - Cable","lineup":"USA-CA61222-DEFAULT","uri":"/20141201/lineups/USA-CA61222-DEFAULT"}]},{"headend":"CA66511","transport":"Cable","location":"Los Angeles","lineups":[{"name":"AT&T U-verse TV - Digital","lineup":"USA-CA66511-X","uri":"/20141201/lineups/USA-CA66511-X"}]},{"headend":"CA67309","transport":"Cable","location":"Westchester","lineups":[{"name":"Time Warner Cable Sherman Oaks - Cable","lineup":"USA-CA67309-DEFAULT","uri":"/20141201/lineups/USA-CA67309-DEFAULT"},{"name":"Time Warner Cable Sherman Oaks - Digital","lineup":"USA-CA67309-X","uri":"/20141201/lineups/USA-CA67309-X"}]},{"headend":"CA67310","transport":"Cable","location":"Eagle Rock","lineups":[{"name":"Time Warner Cable City of Los Angeles - Cable","lineup":"USA-CA67310-DEFAULT","uri":"/20141201/lineups/USA-CA67310-DEFAULT"},{"name":"Time Warner Cable City of Los Angeles - Digital","lineup":"USA-CA67310-X","uri":"/20141201/lineups/USA-CA67310-X"}]},{"headend":"DISH803","transport":"Satellite","location":"Los Angeles","lineups":[{"name":"DISH Los Angeles - Satellite","lineup":"USA-DISH803-DEFAULT","uri":"/20141201/lineups/USA-DISH803-DEFAULT"}]},{"headend":"DITV803","transport":"Satellite","location":"Los Angeles","lineups":[{"name":"DIRECTV Los Angeles - Satellite","lineup":"USA-DITV803-DEFAULT","uri":"/20141201/lineups/USA-DITV803-DEFAULT"}]},{"headend":"90210","transport":"Antenna","location":"90210","lineups":[{"name":"Antenna","lineup":"USA-OTA-90210","uri":"/20141201/lineups/USA-OTA-90210"}]}]

@ -0,0 +1 @@
{"map":[{"stationID":"24326","channel":"001","providerCallsign":"BBC ONE South","logicalChannelNumber":"1","matchType":"providerCallsign"},{"stationID":"17154","channel":"002","providerCallsign":"BBC TWO","logicalChannelNumber":"2","matchType":"providerCallsign"}]}

@ -0,0 +1 @@
{"code":0,"serverID":"20141201.web.1","datetime":"2015-04-17T14:22:17Z","lineups":[{"lineup":"GBR-0001317-DEFAULT","name":"Freeview - Carlton - LWT (Southeast)","transport":"DVB-T","location":"London","uri":"/20141201/lineups/GBR-0001317-DEFAULT"},{"lineup":"USA-IL57303-X","name":"Comcast Waukegan/Lake Forest Area - Digital","transport":"Cable","location":"Lake Forest","uri":"/20141201/lineups/USA-IL57303-X"},{"lineup":"USA-NY67791-X","name":"Verizon Fios Queens - Digital","transport":"Cable","location":"Fresh Meadows","uri":"/20141201/lineups/USA-NY67791-X"},{"lineup":"USA-OTA-60030","name":"Local Over the Air Broadcast","transport":"Antenna","location":"60030","uri":"/20141201/lineups/USA-OTA-60030"},{"lineup":"USA-WI61859-DEFAULT","name":"DELETED LINEUP","isDeleted":true}]}

@ -0,0 +1 @@
[{"programID":"SH00712240","data":[{"width":"135","height":"180","uri":"assets/p282288_b_v2_aa.jpg","size":"Sm","aspect":"3x4","category":"Banner-L3","text":"yes","primary":"true","tier":"Series"},{"width":"720","height":"540","uri":"assets/p282288_b_h6_aa.jpg","size":"Lg","aspect":"4x3","category":"Banner-L3","text":"yes","primary":"true","tier":"Series"},{"width":"960","height":"1440","uri":"assets/p282288_b_v8_aa.jpg","size":"Ms","aspect":"2x3","category":"Banner-L3","text":"yes","primary":"true","tier":"Series"},{"width":"180","height":"135","uri":"assets/p282288_b_h5_aa.jpg","size":"Sm","aspect":"4x3","category":"Banner-L3","text":"yes","primary":"true","tier":"Series"}]}]

@ -0,0 +1 @@
[{"programID":"EP000000060003","titles":[{"title120":"'Allo 'Allo!"}],"eventDetails":{"subType":"Series"},"descriptions":{"description1000":[{"descriptionLanguage":"en","description":"A disguised British Intelligence officer is sent to help the airmen."}]},"originalAirDate":"1985-11-04","genres":["Sitcom"],"episodeTitle150":"The Poloceman Cometh","metadata":[{"Gracenote":{"season":2,"episode":3}}],"cast":[{"personId":"383774","nameId":"392649","name":"Gorden Kaye","role":"Actor","billingOrder":"01"},{"personId":"246840","nameId":"250387","name":"Carmen Silvera","role":"Actor","billingOrder":"02"},{"personId":"376955","nameId":"385830","name":"Rose Hill","role":"Actor","billingOrder":"03"},{"personId":"259773","nameId":"263340","name":"Vicki Michelle","role":"Actor","billingOrder":"04"},{"personId":"353113","nameId":"361987","name":"Kirsten Cooke","role":"Actor","billingOrder":"05"},{"personId":"77787","nameId":"77787","name":"Richard Marner","role":"Actor","billingOrder":"06"},{"personId":"230921","nameId":"234193","name":"Guy Siner","role":"Actor","billingOrder":"07"},{"personId":"374934","nameId":"383809","name":"Kim Hartman","role":"Actor","billingOrder":"08"},{"personId":"369151","nameId":"378026","name":"Richard Gibson","role":"Actor","billingOrder":"09"},{"personId":"343690","nameId":"352564","name":"Arthur Bostrom","role":"Actor","billingOrder":"10"},{"personId":"352557","nameId":"361431","name":"John D. Collins","role":"Actor","billingOrder":"11"},{"personId":"605275","nameId":"627734","name":"Nicholas Frankau","role":"Actor","billingOrder":"12"},{"personId":"373394","nameId":"382269","name":"Jack Haig","role":"Actor","billingOrder":"13"}],"crew":[{"personId":"354407","nameId":"363281","name":"David Croft","role":"Director","billingOrder":"01"},{"personId":"354407","nameId":"363281","name":"David Croft","role":"Writer","billingOrder":"02"},{"personId":"105145","nameId":"105145","name":"Jeremy Lloyd","role":"Writer","billingOrder":"03"}],"showType":"Series","hasImageArtwork":true,"md5":"Jo5NKxoo44xRvBCAq8QT2A"},{"programID":"EP000000510142","titles":[{"title120":"A Different World"}],"eventDetails":{"subType":"Series"},"descriptions":{"description1000":[{"descriptionLanguage":"en","description":"Whitley and Dwayne tell new students about their honeymoon in Los Angeles."}]},"originalAirDate":"1992-09-24","genres":["Sitcom"],"episodeTitle150":"Honeymoon in L.A.","metadata":[{"Gracenote":{"season":6,"episode":1}}],"cast":[{"personId":"700","nameId":"700","name":"Jasmine Guy","role":"Actor","billingOrder":"01"},{"personId":"729","nameId":"729","name":"Kadeem Hardison","role":"Actor","billingOrder":"02"},{"personId":"120","nameId":"120","name":"Darryl M. Bell","role":"Actor","billingOrder":"03"},{"personId":"1729","nameId":"1729","name":"Cree Summer","role":"Actor","billingOrder":"04"},{"personId":"217","nameId":"217","name":"Charnele Brown","role":"Actor","billingOrder":"05"},{"personId":"1811","nameId":"1811","name":"Glynn Turman","role":"Actor","billingOrder":"06"},{"personId":"1232","nameId":"1232","name":"Lou Myers","role":"Actor","billingOrder":"07"},{"personId":"1363","nameId":"1363","name":"Jada Pinkett","role":"Guest Star","billingOrder":"08"},{"personId":"222967","nameId":"225536","name":"Ajai Sanders","role":"Guest Star","billingOrder":"09"},{"personId":"181744","nameId":"183292","name":"Karen Malina White","role":"Guest Star","billingOrder":"10"},{"personId":"305017","nameId":"318897","name":"Patrick Y. Malone","role":"Guest Star","billingOrder":"11"},{"personId":"9841","nameId":"9841","name":"Bumper Robinson","role":"Guest Star","billingOrder":"12"},{"personId":"426422","nameId":"435297","name":"Sister Souljah","role":"Guest Star","billingOrder":"13"},{"personId":"25","nameId":"25","name":"Debbie Allen","role":"Guest Star","billingOrder":"14"},{"personId":"668","nameId":"668","name":"Gilbert Gottfried","role":"Guest Star","billingOrder":"15"}],"showType":"Series","hasImageArtwork":true,"md5":"P5kz0QmCeYxIA+yL0H4DWw"}]

@ -0,0 +1 @@
[{"stationID":"20454","date":["2015-03-13","2015-03-17"]},{"stationID":"10021","date":["2015-03-12","2015-03-13"]}]

@ -0,0 +1 @@
[{"stationID":"20454","programs":[{"programID":"SH005371070000","airDateTime":"2015-03-03T00:00:00Z","duration":1800,"md5":"Sy8HEMBPcuiAx3FBukUhKQ","new":true,"audioProperties":["stereo","cc"],"videoProperties":["hdtv"]},{"programID":"EP000014577244","airDateTime":"2015-03-03T00:30:00Z","duration":1800,"md5":"25DNXVXO192JI7Y9vSW9lQ","new":true,"audioProperties":["stereo","cc"],"videoProperties":["hdtv"]}]}]

@ -0,0 +1 @@
{"code":0,"message":"OK","serverID":"AWS-SD-web.1","datetime":"2016-08-23T13:55:25Z","token":"f3fca79989cafe7dead71beefedc812b"}

@ -0,0 +1 @@
{"response":"SERVICE_OFFLINE","code":3000,"serverID":"20141201.web.1","message":"Server offline for maintenance.","datetime":"2015-04-23T00:03:32Z","token":"CAFEDEADBEEFCAFEDEADBEEFCAFEDEADBEEFCAFE"}
Loading…
Cancel
Save