aboutsummaryrefslogtreecommitdiffstats
path: root/src/client/players
diff options
context:
space:
mode:
authorRblSb <msrblsb@gmail.com>2021-01-24 13:12:58 +0300
committerRblSb <msrblsb@gmail.com>2021-01-24 13:12:58 +0300
commit35beab11cdccf09dc77917a795b033314e62a5b1 (patch)
tree23134d53f46ac678742f7fc4095b66dd68010617 /src/client/players
parent3444b413ab12783c85ce73df9931142fea11b749 (diff)
Video title input
Diffstat (limited to 'src/client/players')
-rw-r--r--src/client/players/Raw.hx27
1 files changed, 19 insertions, 8 deletions
diff --git a/src/client/players/Raw.hx b/src/client/players/Raw.hx
index 9a9d52e..fdb5e73 100644
--- a/src/client/players/Raw.hx
+++ b/src/client/players/Raw.hx
@@ -3,6 +3,7 @@ package client.players;
import js.hlsjs.Hls;
import haxe.Timer;
import js.html.Element;
+import js.html.InputElement;
import js.html.VideoElement;
import js.Browser.document;
import client.Main.ge;
@@ -34,17 +35,20 @@ class Raw implements IPlayer {
public function getVideoData(data:VideoDataRequest, callback:(data:VideoData)->Void):Void {
final url = data.url;
final decodedUrl = url.urlDecode();
+
+ final optTitle = cutOptionalTitle();
var title = decodedUrl.substr(decodedUrl.lastIndexOf("/") + 1);
final isNameMatched = matchName.match(title);
- if (isNameMatched) title = matchName.matched(1);
+ if (optTitle != "") title = optTitle;
+ else if (isNameMatched) title = matchName.matched(1);
else title = Lang.get("rawVideo");
+
var isHls = false;
- if (isNameMatched) {
- isHls = matchName.matched(2).contains("m3u8");
- if (isHls && !isHlsLoaded) {
- loadHlsPlugin(() -> getVideoData(data, callback));
- return;
- }
+ if (isNameMatched) isHls = matchName.matched(2).contains("m3u8");
+ else isHls = title.endsWith("m3u8");
+ if (isHls && !isHlsLoaded) {
+ loadHlsPlugin(() -> getVideoData(data, callback));
+ return;
}
final video = document.createVideoElement();
@@ -64,6 +68,13 @@ class Raw implements IPlayer {
if (isHls) initHlsSource(video, url);
}
+ function cutOptionalTitle():String {
+ final titleInput:InputElement = cast ge("#mediatitle");
+ final optTitle = titleInput.value.trim();
+ titleInput.value = "";
+ return optTitle;
+ }
+
function loadHlsPlugin(callback:()->Void):Void {
final url = "https://cdn.jsdelivr.net/npm/hls.js@latest";
JsApi.addScriptToHead(url, () -> {
@@ -81,7 +92,7 @@ class Raw implements IPlayer {
public function loadVideo(item:VideoItem):Void {
final url = main.tryLocalIp(item.url);
- final isHls = item.url.contains("m3u8");
+ final isHls = item.url.contains("m3u8") || item.title.endsWith("m3u8");
if (isHls && !isHlsLoaded) {
loadHlsPlugin(() -> loadVideo(item));
return;
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage