diff options
| author | RblSb <msrblsb@gmail.com> | 2023-06-21 20:15:52 +0300 |
|---|---|---|
| committer | RblSb <msrblsb@gmail.com> | 2023-06-21 20:51:11 +0300 |
| commit | 452ac109e0a1309ff0e7212de271b2b6d3641353 (patch) | |
| tree | 492f0afbc1f025fc73607374fc897f2f96074c67 /src/client/players/Raw.hx | |
| parent | c476a16ad982e778580d74b8e4120ed29118129a (diff) | |
Skip proxy for local subs
Diffstat (limited to 'src/client/players/Raw.hx')
| -rw-r--r-- | src/client/players/Raw.hx | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/src/client/players/Raw.hx b/src/client/players/Raw.hx index dc3aed5..08025eb 100644 --- a/src/client/players/Raw.hx +++ b/src/client/players/Raw.hx @@ -6,9 +6,11 @@ import Types.VideoItem; import client.Main.ge; import haxe.Timer; import js.Browser.document; +import js.Browser; import js.hlsjs.Hls; import js.html.Element; import js.html.InputElement; +import js.html.URL; import js.html.VideoElement; using StringTools; @@ -119,7 +121,28 @@ class Raw implements IPlayer { } if (isHls) initHlsSource(video, url); restartControlsHider(); - RawSubs.loadSubs(item, video); + + var subsUrl = item.subs ?? return; + if (subsUrl.length == 0) return; + if (subsUrl.startsWith("/")) { + RawSubs.loadSubs(subsUrl, video); + return; + } + if (!subsUrl.startsWith("http")) { + final protocol = Browser.location.protocol; + subsUrl = '$protocol//$subsUrl'; + } + final subsUri = try { + new URL(subsUrl); + } catch (e) { + Main.serverMessage('Failed to add subs: bad url ($subsUrl)'); + return; + } + // make local url as relative path to skip proxy + if (subsUri.hostname == main.host || subsUri.hostname == main.globalIp) { + subsUrl = subsUri.pathname; + } + RawSubs.loadSubs(subsUrl, video); } function restartControlsHider():Void { |
