From 9d844bbf3ac6be327325b13a91a6b33f73c49c1d Mon Sep 17 00:00:00 2001 From: RblSb Date: Sun, 28 Apr 2024 07:23:25 +0300 Subject: Raw youtube fallback for unavailable videos Also: - fix `tryLocalIp` replacement (NAT workaround) - improve proxy headers a bit - use json2object fork for better generated diffs --- src/server/Main.hx | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'src/server/Main.hx') diff --git a/src/server/Main.hx b/src/server/Main.hx index c5eb36f..e7c38a6 100644 --- a/src/server/Main.hx +++ b/src/server/Main.hx @@ -531,8 +531,7 @@ class Main { if (userList.admins.exists( a -> a.name.toLowerCase() == lcName && a.hash == hash)) { client.isAdmin = true; - } - else { + } else { serverMessage(client, "passwordMatchError"); send(client, {type: LoginError}); return; @@ -587,6 +586,17 @@ class Main { broadcast(data); case ServerMessage: + case GetYoutubeVideoInfo: + final url = data.getYoutubeVideoInfo.url; + YoutubeFallback.getInfo(url, info -> { + send(client, { + type: data.type, + getYoutubeVideoInfo: { + url: url, + response: info + } + }); + }); case AddVideo: if (isPlaylistLockedFor(client)) return; if (!checkPermission(client, AddVideoPerm)) return; @@ -1038,7 +1048,9 @@ class Main { duration: duration, time: time }); - while (flashbacks.length > FLASHBACKS_COUNT) flashbacks.pop(); + while (flashbacks.length > FLASHBACKS_COUNT) { + flashbacks.pop(); + } } function isPlaylistLockedFor(client:Client):Bool { -- cgit v1.2.3