showsVIC = {}; showsNSW = {}; showsQLD = {}; showsSA = {}; showsWA = {}; //ORDER: // 1. Load page // 2. Create channel objects // 3. Load guide data // 4. Display guide/channels // Channel Class // function Channel(name, URLs) { this.name = name; this.URLs = URLs; this.currentShows = {VIC:"", NSW:"", QLD:"", SA:"", WA:""}; this.onNow; } Channel.prototype = { getName:function () { return this.name; }, getIconName:function () { return this.name + ".png"; }, getURLForState:function (state) { return this.URLs[state]; }, setCurrentShowsForState:function (currentShows, state) { this.currentShows[state] = currentShows; }, getCurrentShowsForState:function (state) { return this.currentShows[state]; }, setOnNow:function (onNow) { this.onNow = onNow; }, getOnNow:function () { return this.onNow; } } // Function to initalise all channels // function createChannels() { chABC = new Channel("ABC", { VIC:"https://abctvlivehls-lh.akamaihd.net/i/abc1_1@360323/master.m3u8", NSW:"https://abctvlivehls-lh.akamaihd.net/i/abc1_1@360323/master.m3u8", QLD:"https://abctvlivehls-lh.akamaihd.net/i/abc1_1@360323/master.m3u8", SA:"https://abctvlivehls-lh.akamaihd.net/i/abc1_1@360323/master.m3u8", WA:"https://abctvlivehls-lh.akamaihd.net/i/abc1_1@360323/master.m3u8" }); chSBS = new Channel("SBS", { VIC:"http://sbslivefvstreaming.sbs.com.au/out/u/sbs1-mo-000-c3093-delpkg1-delpkg1-abr/index-root-ipad.m3u8", NSW:"http://sbslivefvstreaming.sbs.com.au/out/u/sbs1-mo-000-c3093-delpkg1-delpkg1-abr/index-root-ipad.m3u8", QLD:"http://sbslivefvstreaming.sbs.com.au/out/u/sbs1-mo-000-c3093-delpkg1-delpkg1-abr/index-root-ipad.m3u8", SA:"http://sbslivefvstreaming.sbs.com.au/out/u/sbs1-mo-000-c3093-delpkg1-delpkg1-abr/index-root-ipad.m3u8", WA:"http://sbslivefvstreaming.sbs.com.au/out/u/sbs1-mo-000-c3093-delpkg1-delpkg1-abr/index-root-ipad.m3u8" }); ch7 = new Channel("7", { VIC:"https://melbourneseven-i.akamaihd.net/hls/live/263658/MEL1/master.m3u8", NSW:"https://sydneyseven-i.akamaihd.net/hls/live/263630/SYD1/master.m3u8", QLD:"https://brisbaneseven-i.akamaihd.net/hls/live/263663/BRI1/master.m3u8", SA:"https://adelaideseven-i.akamaihd.net/hls/live/263667/ADE1/master.m3u8", WA:"https://perthseven-i.akamaihd.net/hls/live/263674/PER1/master.m3u8" }); ch9 = new Channel("9", { VIC:"https://9nowch9livehls-i.akamaihd.net/hls/live/250962/melbourne/master.m3u8", NSW:"https://9nowch9livehls-i.akamaihd.net/hls/live/250964/sydney/master.m3u8", QLD:"https://9nowch9livehls-i.akamaihd.net/hls/live/250961/brisbane/master.m3u8", SA:"https://9nowch9livehls-i.akamaihd.net/hls/live/250960/adelaide/master.m3u8", WA:"https://9nowch9livehls-i.akamaihd.net/hls/live/250963/perth/master.m3u8" }); ch10 = new Channel("10", { VIC:"http://csm-e.cds1.yospace.com/csm/extlive/networkten01,SDATV.m3u8", NSW:"http://csm-e.cds1.yospace.com/csm/extlive/networkten01,SDTEN.m3u8", QLD:"http://csm-e.cds1.yospace.com/csm/extlive/networkten01,SDTVQ.m3u8", SA:"http://csm-e.cds1.yospace.com/csm/extlive/networkten01,SDADS.m3u8", WA:"http://csm-e.cds1.yospace.com/csm/extlive/networkten01,SDNEW.m3u8" }); chABC2 = new Channel("ABC2", { VIC:"https://abctvlivehls-lh.akamaihd.net/i/abckids_1@327097/master.m3u8", NSW:"https://abctvlivehls-lh.akamaihd.net/i/abckids_1@327097/master.m3u8", QLD:"https://abctvlivehls-lh.akamaihd.net/i/abckids_1@327097/master.m3u8", SA:"https://abctvlivehls-lh.akamaihd.net/i/abckids_1@327097/master.m3u8", WA:"https://abctvlivehls-lh.akamaihd.net/i/abckids_1@327097/master.m3u8" }); chABCME = new Channel("ABCME", { VIC:"https://abctvlivehls-lh.akamaihd.net/i/abc3_1@332134/master.m3u8", NSW:"https://abctvlivehls-lh.akamaihd.net/i/abc3_1@332134/master.m3u8", QLD:"https://abctvlivehls-lh.akamaihd.net/i/abc3_1@332134/master.m3u8", SA:"https://abctvlivehls-lh.akamaihd.net/i/abc3_1@332134/master.m3u8", WA:"https://abctvlivehls-lh.akamaihd.net/i/abc3_1@332134/master.m3u8" }); chABCNews = new Channel("ABCNews", { VIC:"https://abcnews24hls-lh.akamaihd.net/i/news24_1@3259/master.m3u8", NSW:"https://abcnews24hls-lh.akamaihd.net/i/news24_1@3259/master.m3u8", QLD:"https://abcnews24hls-lh.akamaihd.net/i/news24_1@3259/master.m3u8", SA:"https://abcnews24hls-lh.akamaihd.net/i/news24_1@3259/master.m3u8", WA:"https://abcnews24hls-lh.akamaihd.net/i/news24_1@3259/master.m3u8" }); chSBSViceland = new Channel("SBSViceland", { VIC:"http://sbslivefvstreaming.sbs.com.au/out/u/sbs2-mo-000-c3093-delpkg1-delpkg1-abr/index-root-ipad.m3u8", NSW:"http://sbslivefvstreaming.sbs.com.au/out/u/sbs2-mo-000-c3093-delpkg1-delpkg1-abr/index-root-ipad.m3u8", QLD:"http://sbslivefvstreaming.sbs.com.au/out/u/sbs2-mo-000-c3093-delpkg1-delpkg1-abr/index-root-ipad.m3u8", SA:"http://sbslivefvstreaming.sbs.com.au/out/u/sbs2-mo-000-c3093-delpkg1-delpkg1-abr/index-root-ipad.m3u8", WA:"http://sbslivefvstreaming.sbs.com.au/out/u/sbs2-mo-000-c3093-delpkg1-delpkg1-abr/index-root-ipad.m3u8" }); chSBSFood = new Channel("SBSFood", { VIC:"http://sbslivefvstreaming.sbs.com.au/out/u/fdnet-mo-000-c3094-delpkg1-delpkg1-abr/index-root-ipad.m3u8", NSW:"http://sbslivefvstreaming.sbs.com.au/out/u/fdnet-mo-000-c3094-delpkg1-delpkg1-abr/index-root-ipad.m3u8", QLD:"http://sbslivefvstreaming.sbs.com.au/out/u/fdnet-mo-000-c3094-delpkg1-delpkg1-abr/index-root-ipad.m3u8", SA:"http://sbslivefvstreaming.sbs.com.au/out/u/fdnet-mo-000-c3094-delpkg1-delpkg1-abr/index-root-ipad.m3u8", WA:"http://sbslivefvstreaming.sbs.com.au/out/u/fdnet-mo-000-c3094-delpkg1-delpkg1-abr/index-root-ipad.m3u8" }); chNITV = new Channel("NITV", { VIC:"http://sbslivefvstreaming.sbs.com.au/out/u/nitv-mo-000-c3094-delpkg1-delpkg1-abr/index-root-ipad.m3u8", NSW:"http://sbslivefvstreaming.sbs.com.au/out/u/nitv-mo-000-c3094-delpkg1-delpkg1-abr/index-root-ipad.m3u8", QLD:"http://sbslivefvstreaming.sbs.com.au/out/u/nitv-mo-000-c3094-delpkg1-delpkg1-abr/index-root-ipad.m3u8", SA:"http://sbslivefvstreaming.sbs.com.au/out/u/nitv-mo-000-c3094-delpkg1-delpkg1-abr/index-root-ipad.m3u8", WA:"http://sbslivefvstreaming.sbs.com.au/out/u/nitv-mo-000-c3094-delpkg1-delpkg1-abr/index-root-ipad.m3u8" }); ch7TWO = new Channel("7TWO", { VIC:"https://melbourneseven-i.akamaihd.net/hls/live/263659/MEL2/master.m3u8", NSW:"https://sydneyseven-i.akamaihd.net/hls/live/263631/SYD2/master.m3u8", QLD:"https://brisbaneseven-i.akamaihd.net/hls/live/263664/BRI2/master.m3u8", SA:"https://adelaideseven-i.akamaihd.net/hls/live/263668/ADE2/master.m3u8", WA:"https://perthseven-i.akamaihd.net/hls/live/263675/PER2/master.m3u8" }); ch7mate = new Channel("7mate", { VIC:"https://melbourneseven-i.akamaihd.net/hls/live/263661/MEL3/master.m3u8", NSW:"https://sydneyseven-i.akamaihd.net/hls/live/263632/SYD3/master.m3u8", QLD:"https://brisbaneseven-i.akamaihd.net/hls/live/263665/BRI3/master.m3u8", SA:"https://adelaideseven-i.akamaihd.net/hls/live/263669/ADE3/master.m3u8", WA:"https://perthseven-i.akamaihd.net/hls/live/263676/PER3/master.m3u8" }); ch7flix = new Channel("7flix", { VIC:"https://melbourneseven-i.akamaihd.net/hls/live/263662/MEL6/master.m3u8", NSW:"https://sydneyseven-i.akamaihd.net/hls/live/263634/SYD6/master.m3u8", QLD:"https://brisbaneseven-i.akamaihd.net/hls/live/263666/BRI6/master.m3u8", SA:"https://adelaideseven-i.akamaihd.net/hls/live/263670/ADE6/master.m3u8", WA:"https://perthseven-i.akamaihd.net/hls/live/263677/PER6/master.m3u8" }); ch9Gem = new Channel("9Gem", { VIC:"https://9nowgemlivehls-i.akamaihd.net/hls/live/250972/melbourne/master.m3u8", NSW:"https://9nowgemlivehls-i.akamaihd.net/hls/live/250974/sydney/master.m3u8", QLD:"https://9nowgemlivehls-i.akamaihd.net/hls/live/250971/brisbane/master.m3u8", SA:"https://9nowgemlivehls-i.akamaihd.net/hls/live/250970/adelaide/master.m3u8", WA:"https://9nowgemlivehls-i.akamaihd.net/hls/live/250973/perth/master.m3u8" }); ch9Go = new Channel("9Go", { VIC:"https://9nowgolivehls-i.akamaihd.net/hls/live/250977/melbourne/master.m3u8", NSW:"https://9nowgolivehls-i.akamaihd.net/hls/live/250987/sydney/master.m3u8", QLD:"https://9nowgolivehls-i.akamaihd.net/hls/live/250976/brisbane/master.m3u8", SA:"https://9nowgolivehls-i.akamaihd.net/hls/live/250975/adelaide/master.m3u8", WA:"https://9nowgolivehls-i.akamaihd.net/hls/live/250978/perth/master.m3u8" }); ch9Life = new Channel("9Life", { VIC:"https://9nowlifelivehls-i.akamaihd.net/hls/live/250992/melbourne/master.m3u8", NSW:"https://9nowlifelivehls-i.akamaihd.net/hls/live/250994/sydney/master.m3u8", QLD:"https://9nowlifelivehls-i.akamaihd.net/hls/live/250991/brisbane/master.m3u8", SA:"https://9nowlifelivehls-i.akamaihd.net/hls/live/250990/adelaide/master.m3u8", WA:"https://9nowlifelivehls-i.akamaihd.net/hls/live/250993/perth/master.m3u8" }); chRacing = new Channel("Racing", { VIC:"https://melbourneseven-i.akamaihd.net/hls/live/263815/RAC/master.m3u8", NSW:"https://melbourneseven-i.akamaihd.net/hls/live/263815/RAC/master.m3u8", QLD:"https://melbourneseven-i.akamaihd.net/hls/live/263815/RAC/master.m3u8", SA:"https://melbourneseven-i.akamaihd.net/hls/live/263815/RAC/master.m3u8", WA:"https://melbourneseven-i.akamaihd.net/hls/live/263815/RAC/master.m3u8" }); channels = [chABC, chSBS, ch7, ch9, ch10, chABC2, chABCME, chABCNews, chSBSViceland, chSBSFood, chNITV, ch7TWO, ch7mate, ch7flix, ch9Gem, ch9Go, ch9Life, chRacing]; console.log("Successfully created channels"); return channels; } // Create guide divs // function createGuideDivs() { for (channel in channels) { //var newGuideChannel = $(".guide").clone(); //newGuideChannel.attr("id", "ch" + channels[channel].getName()) var template = [ '
");
}
}
function updateVideoInfo() {
currentChannel = localStorage["channel"];
currentShow = window[currentChannel].getOnNow();
try {
$(".iShowTitle").text(currentShow.name);
$(".iShowSubtitle").text(currentShow.subtitle);
$(".iShowDesc").text(currentShow.description);
} catch (e) {
$(".iShowTitle").text(window[currentChannel].getName());
$(".iShowSubtitle").text("");
$(".iShowDesc").text("");
}
}
function getCurrentStream() {
var player = videojs('video');
}
function playStream(stream) {
$('.videocontent video source').attr('src', stream);
$(".videocontent video")[0].load();
var player = videojs('video');
player.pause();
player.src({ type: "application/x-mpegURL", src: stream });
player.load();
player.play();
}
function loadVideo(channelToLoad) {
if (channelToLoad) {
var stream = channelToLoad.getURLForState(localStorage["state"]);
if (channelToLoad.name.includes("ABC")) {
var player = videojs('video');
player.pause();
//need to get token - ugh
var token = 'L$#_rR7}K3IaB';
var tokenURL = 'https://freeview-fv.global.ssl.fastly.net/288/epgApi/getToken?region=Melbourne&network=ABC&channel_id=101002210221&format=html&token=L$%23_rR7}K3IaB';
var xmlHttp = new XMLHttpRequest();
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
playStream(stream + '?' + xmlHttp.responseText);
}
}
xmlHttp.open("GET", tokenURL, true); // true for asynchronous
xmlHttp.send(null);
} else {
playStream(stream);
}
}
}
function toggleDropdown() {
document.getElementById("myDropdown").classList.toggle("show");
}
function loadGuide() {
date = new Date($.now()); //get current time/date
JSONfile = "Guide/" + getDate() + ".json"
$.getJSON(JSONfile, function( data ) {
$.each( data, function( key, val ) {
if (key == "VIC") {
showsVIC = val;
} else if (key == "NSW") {
showsNSW = val;
} else if (key == "QLD") {
showsQLD = val;
} else if (key == "SA") {
showsSA = val;
} else if (key == "WA") {
showsWA = val;
}
});
saveGuideData();
getCurrentShows();
setInterval(getCurrentShows, 60*1000);
});
}
function saveGuideData() {
for (channel in channels) {
channels[channel].setCurrentShowsForState(showsVIC[channels[channel].getName()], "VIC");
channels[channel].setCurrentShowsForState(showsNSW[channels[channel].getName()], "NSW");
channels[channel].setCurrentShowsForState(showsQLD[channels[channel].getName()], "QLD");
channels[channel].setCurrentShowsForState(showsSA[channels[channel].getName()], "SA");
channels[channel].setCurrentShowsForState(showsWA[channels[channel].getName()], "WA");
}
console.log("Guide data saved to channels");
}
function convertDate(date) {
//var myDate = "20161029140000";
year = date.slice(0,4);
month = parseInt(date.slice(4,6));
day = date.slice(6,8);
hour = date.slice(8,10);
minutes = date.slice(10,12);
tz = date.slice(15,20);
//date = new Date(year, month, day, hour, minutes);
newDate = new Date(month + '/' + day + '/' + year + ' ' + hour + ':' + minutes + ':00 UTC')
return newDate;
}
function getCurrentShows() {
console.log("Getting current shows");
currentDate = new Date($.now()); //get current time/date
var state = localStorage["state"];
for (channel in channels) {
showList = channels[channel].getCurrentShowsForState(state);
for (show in showList) {
showDate = convertDate(showList[show].start_time);
if (showDate > currentDate) {
channels[channel].setOnNow(showList[show-1]);
channelName = channels[channel].getName();
currentShow = showList[show-1];
nextShow = showList[show];
//Convert the start/end times to readable HH:MM am/pm format
cShowStart = convertDate(showList[show-1].start_time).toLocaleTimeString([], {hour: '2-digit', minute: '2-digit'});
cShowEnd = convertDate(showList[show-1].end_time).toLocaleTimeString([], {hour: '2-digit', minute: '2-digit'});
nShowStart = showDate.toLocaleTimeString([], {hour: '2-digit', minute: '2-digit'});
nShowEnd = convertDate(showList[show].end_time).toLocaleTimeString([], {hour: '2-digit', minute: '2-digit'});
//Create the show time strings
cShowTime = cShowStart + " - " + cShowEnd;
nShowTime = nShowStart + " - " + nShowEnd;
$("#" + channelName + " > .currentShowCol > .showTitle").text(currentShow.name);
$("#" + channelName + " > .currentShowCol > .showTime").text(cShowTime);
$("#" + channelName + " > .nextShowCol > .showTitle").text(nextShow.name);
$("#" + channelName + " > .nextShowCol > .showTime").text(nShowTime);
if (currentShow.subtitle == "") {
$("#" + channelName + " > .currentShowCol > .showSubtitle").html(" ");
//$("tr.clickable-row#" + channels[channel] + " > td.currentShow > ul > li.showSubtitle").html("");
} else {
$("#" + channelName + " > .currentShowCol > .showSubtitle").text(currentShow.subtitle);
//$("tr.clickable-row#" + channels[channel] + " > td.currentShow > ul > li.showSubtitle").text(currentShow.subtitle);
}
if (nextShow.subtitle == "") {
$("#" + channelName + " > .nextShowCol > .showSubtitle").html(" ");
//$("tr.clickable-row#" + channels[channel] + " > td.nextShow > ul > li.showSubtitle").html(" ");
} else {
$("#" + channelName + " > .nextShowCol > .showSubtitle").text(nextShow.subtitle);
//$("tr.clickable-row#" + channels[channel] + " > td.nextShow > ul > li.showSubtitle").text(nextShow.subtitle);
}
break;
}
}
}
updateVideoInfo();
}
function getDate() {
var date = new Date();
var year = date.getFullYear();
var month = String(date.getMonth() + 1);
var day = String(date.getDate());
if (month.length < 2) {
month = "0".concat(month);
}
if (day.length < 2) {
day = "0".concat(day);
}
return [year, month, day].join('-');
}