73 lines
2.5 KiB
JavaScript
73 lines
2.5 KiB
JavaScript
module.exports = function ($scope, dizquetv, $timeout) {
|
|
|
|
$scope.loading = true;
|
|
$scope.channelOptions = [
|
|
{ id: undefined, description: "Select a channel" },
|
|
];
|
|
$scope.icons = {};
|
|
|
|
|
|
$scope.endpointOptions = [
|
|
{ id: "video", description: "/video - Channel mpegts" },
|
|
{ id: "m3u8", description: "/m3u8 - Playlist of individual videos" },
|
|
{ id: "radio", description: "/radio - Audio-only channel mpegts" },
|
|
];
|
|
$scope.selectedEndpoint = "video";
|
|
$scope.channel = undefined;
|
|
|
|
$scope.endpointButtonHref = () => {
|
|
if ( $scope.selectedEndpoint == "video") {
|
|
return `./media-player/${$scope.channel}.m3u`
|
|
} else if ( $scope.selectedEndpoint == "m3u8") {
|
|
return `./media-player/fast/${$scope.channel}.m3u`
|
|
} else if ( $scope.selectedEndpoint == "radio") {
|
|
return `./media-player/radio/${$scope.channel}.m3u`
|
|
}
|
|
}
|
|
|
|
$scope.buttonDisabled = () => {
|
|
return typeof($scope.channel) === 'undefined';
|
|
}
|
|
|
|
$scope.endpoint = () => {
|
|
if ( typeof($scope.channel) === 'undefined' ) {
|
|
return "--"
|
|
}
|
|
let path = "";
|
|
if ( $scope.selectedEndpoint == "video") {
|
|
path = `/video?channel=${$scope.channel}`
|
|
} else if ( $scope.selectedEndpoint == "m3u8") {
|
|
path = `/m3u8?channel=${$scope.channel}`
|
|
} else if ( $scope.selectedEndpoint == "radio") {
|
|
path= `/radio?channel=${$scope.channel}`
|
|
}
|
|
return window.location.href.replace("/#!/player", path);
|
|
}
|
|
|
|
let loadChannels = async() => {
|
|
let channelNumbers = await dizquetv.getChannelNumbers();
|
|
try {
|
|
await Promise.all( channelNumbers.map( async(x) => {
|
|
let desc = await dizquetv.getChannelDescription(x);
|
|
let option = {
|
|
id: x,
|
|
description: `${x} - ${desc.name}`,
|
|
};
|
|
$scope.channelOptions.push( option );
|
|
$scope.icons[x] = desc.icon;
|
|
}) );
|
|
$scope.channelOptions.sort( (a,b) => {
|
|
let za = ( (typeof(a.id) === undefined)?-1:a.id);
|
|
let zb = ( (typeof(b.id) === undefined)?-1:b.id);
|
|
return za - zb;
|
|
} );
|
|
$scope.loading = false;
|
|
$scope.$apply();
|
|
} catch (err) {
|
|
console.error(err);
|
|
}
|
|
$timeout( () => $scope.$apply(), 0);
|
|
}
|
|
|
|
loadChannels();
|
|
} |