refactor: move video source construction from inline script to initPlayer
This commit is contained in:
@@ -11,32 +11,13 @@
|
|||||||
data-available-modes='{{json .WatchData.AvailableModes}}'
|
data-available-modes='{{json .WatchData.AvailableModes}}'
|
||||||
data-segments='{{json .WatchData.Segments}}'
|
data-segments='{{json .WatchData.Segments}}'
|
||||||
data-is-airing="{{.WatchData.Airing}}"
|
data-is-airing="{{.WatchData.Airing}}"
|
||||||
|
data-stream-url="/watch/proxy/stream"
|
||||||
data-anime-title-english="{{.WatchData.Title}}"
|
data-anime-title-english="{{.WatchData.Title}}"
|
||||||
data-anime-image="{{.WatchData.MalID}}"
|
data-anime-image="{{.WatchData.MalID}}"
|
||||||
class="group relative aspect-video w-full overflow-hidden bg-black [&.show-controls_[data-video-overlay]]:opacity-100 [&.fullscreen:not(.show-controls)_[data-video-overlay]]:opacity-0 [&.fullscreen:not(.show-controls)_[data-video-overlay]]:pointer-events-none [&.fullscreen:not(.show-controls)]:cursor-none [&.fullscreen:not(.show-controls)_video]:cursor-none [&.video-ended_video]:opacity-0">
|
class="group relative aspect-video w-full overflow-hidden bg-black [&.show-controls_[data-video-overlay]]:opacity-100 [&.fullscreen:not(.show-controls)_[data-video-overlay]]:opacity-0 [&.fullscreen:not(.show-controls)_[data-video-overlay]]:pointer-events-none [&.fullscreen:not(.show-controls)]:cursor-none [&.fullscreen:not(.show-controls)_video]:cursor-none [&.video-ended_video]:opacity-0">
|
||||||
|
|
||||||
|
|
||||||
<video class="h-full w-full cursor-pointer" preload="metadata" playsinline></video>
|
<video class="h-full w-full cursor-pointer" preload="metadata" playsinline></video>
|
||||||
<script>
|
|
||||||
(function() {
|
|
||||||
var p = document.currentScript.closest('[data-video-player]');
|
|
||||||
var v = p.querySelector('video');
|
|
||||||
var sources = JSON.parse(p.getAttribute('data-mode-sources') || '{}');
|
|
||||||
var mode = p.getAttribute('data-initial-mode') || 'dub';
|
|
||||||
var stored = localStorage.getItem('player-audio-mode');
|
|
||||||
if (stored && sources[stored] && sources[stored].token) mode = stored;
|
|
||||||
var src = sources[mode];
|
|
||||||
if (!src || !src.token) {
|
|
||||||
for (var k in sources) {
|
|
||||||
if (sources[k] && sources[k].token) { src = sources[k]; mode = k; break; }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (src && src.token) {
|
|
||||||
v.src = '/watch/proxy/stream?mode=' + encodeURIComponent(mode) + '&token=' + encodeURIComponent(src.token);
|
|
||||||
v.play().catch(function() {});
|
|
||||||
}
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<div data-loading class="absolute inset-0 flex items-center justify-center bg-black/60 hidden z-50">
|
<div data-loading class="absolute inset-0 flex items-center justify-center bg-black/60 hidden z-50">
|
||||||
<div class="border-accent size-10 animate-spin rounded-full border-4 border-t-transparent"></div>
|
<div class="border-accent size-10 animate-spin rounded-full border-4 border-t-transparent"></div>
|
||||||
|
|||||||
Reference in New Issue
Block a user