2021-03-23 19:52:36 -04:00

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();
}