diff --git a/public/app.js b/public/app.js index 4858bcc..82a4af0 100644 --- a/public/app.js +++ b/public/app.js @@ -12,6 +12,7 @@ const CHANNELS = [ { key: 'adria', name: 'Adria Music TV', color: '#30a6d1', logo: '/logos/adria_neg_b.png', alt: 'logo of Adria', jw: 'lI4SC7Do', live: 'https://adriaapp.b-cdn.net/master.m3u8' , bg: '/backgrounds/ch_adria.jpg' }, { key: 'folx-slo', name: 'Folx Slovenija', color: '#a8b539', logo: '/logos/folx_slo_neg_b.png', alt: 'logo of Folx Slovenija', jw: 'aoCWwwSg', live: 'https://folxsloapp.b-cdn.net/master.m3u8' , bg: '/backgrounds/ch_folx-slo.jpg' }, { key: 'one-adria', name: 'One Adria Music TV', color: '#a84d7e', logo: '/logos/one_neg_b.png', alt: 'logo of One Adria', jw: 'IGOSgmvW', live: 'https://oneadriaapp.b-cdn.net/master.m3u8' , bg: '/backgrounds/ch_one-adria.jpg' }, + { key: 'extra', name: 'FOLX EXTRA', color: '#E30613', logo: '/logos/extra_neg_b.png', alt: 'logo of FOLX EXTRA', jw: null, promo: '/promo/folx_extra_promo.mp4', live: 'https://extraapp.b-cdn.net/master.m3u8' , bg: '/backgrounds/ch_extra.jpg' }, ]; // Coloured dot per channel (colour taken from the channel's brand colour). @@ -338,7 +339,8 @@ async function fallbackToPromo(ch, token) { video.addEventListener('playing', hideLoadingOverlay, { once: true }); video.onerror = null; video.onstalled = null; try { - await loadHls(video, JW_HLS(ch.jw), false); + if (ch.jw) await loadHls(video, JW_HLS(ch.jw), false); + else { destroyHls(); video.src = ch.promo; } // FOLX EXTRA: promo kot mp4 (brez JW) if (token !== playToken) return; video.loop = true; // promo loops until live returns video.play().catch(() => {}); diff --git a/public/backgrounds/ch_extra.jpg b/public/backgrounds/ch_extra.jpg new file mode 100644 index 0000000..c270b8c Binary files /dev/null and b/public/backgrounds/ch_extra.jpg differ diff --git a/public/index.html b/public/index.html index b425765..63aaadc 100644 --- a/public/index.html +++ b/public/index.html @@ -14,7 +14,7 @@