From 5b747a82ddc0c3d238a8e5ab36e984976934f625 Mon Sep 17 00:00:00 2001 From: Ashley Date: Mon, 14 Nov 2022 18:36:00 +0100 Subject: [PATCH] Refactor code, add more gooda error thingy :3 --- src/libpoketube/init/pages-video.js | 478 ++++++++++++++-------------- 1 file changed, 243 insertions(+), 235 deletions(-) diff --git a/src/libpoketube/init/pages-video.js b/src/libpoketube/init/pages-video.js index e5feb3f2..50c0c9a0 100644 --- a/src/libpoketube/init/pages-video.js +++ b/src/libpoketube/init/pages-video.js @@ -1,4 +1,13 @@ - const { fetcher,core, wiki,musicInfo, modules, version, initlog, init,} = require("../libpoketube-initsys.js"); +const { + fetcher, + core, + wiki, + musicInfo, + modules, + version, + initlog, + init, +} = require("../libpoketube-initsys.js"); const { IsJsonString, convert, @@ -13,243 +22,242 @@ const sha384 = modules.hash; module.exports = function (app, config, renderTemplate) { app.get("/encryption", async function (req, res) { - var v = req.query.v; + var v = req.query.v; - const video = await modules.fetch(config.tubeApi + `video?v=${v}`); - var fetching = await fetcher(v); + const video = await modules.fetch(config.tubeApi + `video?v=${v}`); + var fetching = await fetcher(v); - const json = fetching.video.Player; - const h = await video.text(); - const k = JSON.parse(modules.toJson(h)); - if (!v) res.redirect("/"); + const json = fetching.video.Player; + const h = await video.text(); + const k = JSON.parse(modules.toJson(h)); + if (!v) res.redirect("/"); - //video - const j = fetching.video.Player.Formats.Format, - j_ = Array.isArray(j) ? j[j.length - 1] : j; - let url; - if (j_.URL != undefined) url = j_.URL; + //video + const j = fetching.video.Player.Formats.Format, + j_ = Array.isArray(j) ? j[j.length - 1] : j; + let url; + if (j_.URL != undefined) url = j_.URL; - // json response - const re = { - main: { - video_id: sha384(json.id), - channel: sha384(json.Channel.Name), - title: sha384(json.Title), - date: sha384(btoa(Date.now()).toString()), - }, - info: { - desc: sha384(json.Description), - }, - video: { - title: sha384(json.Title), - url: sha384(url), - }, - }; + // json response + const re = { + main: { + video_id: sha384(json.id), + channel: sha384(json.Channel.Name), + title: sha384(json.Title), + date: sha384(btoa(Date.now()).toString()), + }, + info: { + desc: sha384(json.Description), + }, + video: { + title: sha384(json.Title), + url: sha384(url), + }, + }; - res.json(re); -}); - -app.get("/watch", async function (req, res) { - /* - * QUERYS - * v = Video ID - * e = Embed - * r = Recommended videos - * f = Recent videos from channel - * t = Piwik OptOut - * q = quality obv - */ - var v = req.query.v; - var e = req.query.e; - var r = req.query.r; - var f = req.query.f; - var t = req.query.t; - var q = req.query.quality; - - const info = await modules.fetch("http://ip-api.com/json/"); - const jj = await info.text(); - const ip = JSON.parse(jj); - - for (let i = 0; i < 3; i++) { - try { - core.video(v).then((data) => { - const k = data.video; - const json = data.json; - const engagement = data.engagement; - var inv_comments = data.comments; - const inv_vid = data.vid; - - if (!data.comments) inv_comments = "Disabled"; - - if (!core.video(v).b) { - var nnn = ""; - var badges = ""; - var comments = ""; - } - - if (!v) res.redirect("/"); - - if (q === "medium") { - var url = `https://inv.vern.cc/latest_version?id=${v}&itag=18&local=true`; - } - - // encryption - const url_e = - url + - "?e=" + - sha384(k.Video.Channel.id) + - sha384(k.Video.Channel.id) + - "Piwik" + - sha384(config.t_url); - - const desc = data.desc; - - var d = desc.toString().replace(/\n/g, "
"); - - if (d === "[object Object]") { - var d = false; - } - - renderTemplate(res, req, "poketube.ejs", { - url: url_e, - color: data.color, - engagement: engagement, - video: json, - date: k.Video.uploadDate, - e: e, - k: k, - process: process, - sha384: sha384, - isMobile: req.useragent.isMobile, - tj: data.channel, - r: r, - qua: q, - inv: inv_comments, - ip: ip, - convert: convert, - wiki: data.wiki, - f: f, - t: config.t_url, - optout: t, - badges: badges, - desc: desc, - comments: comments, - n: nnn, - inv_vid, - lyrics: "", - }); - }); - break; - } catch (err) { - if (err.status === 503) { - // retry after a bit - await new Promise((resolve) => setTimeout(resolve, 1000)); - } else { - return ""; - } - } - } -}); - -app.get("/music", async function (req, res) { - /* - * QUERYS - * v = Video ID - * e = Embed - * r = Recommended videos - * f = Recent videos from channel - * t = Piwik OptOut - * q = quality obv - */ - var v = req.query.v; - var e = req.query.e; - var r = req.query.r; - var f = req.query.f; - var t = req.query.t; - - const info = await modules.fetch("http://ip-api.com/json/"); - const n = await info.text(); - const ip = JSON.parse(n); - - if (!v) res.redirect("/"); - - var fetching = await fetcher(v); - - const json = fetching.video.Player; - - const video = await modules.fetch(config.tubeApi + `video?v=${v}`); - - const h = await video.text(); - const k = JSON.parse(modules.toJson(h)); - - if (!json.Channel.Name.endsWith(" - Topic")) { - res.redirect(`/watch?v=${v}`); - } - - //video - var url = `https://tube.kuylar.dev/proxy/media/${v}/18`; - - // encryption - const url_e = - url + - "?e=" + - sha384(k.Video.Channel.id) + - sha384(k.Video.Channel.id) + - "Piwik" + - sha384(config.t_url); - - // channel info - const engagement = fetching.engagement; - const channel = await modules.fetch( - config.tubeApi + `channel?id=${k.Video.Channel.id}&tab=videos` - ); - const c = await channel.text(); - const tj = JSON.parse(modules.toJson(c)); - - // info - const song = await musicInfo.searchSong( - { title: k.Video.Title, artist: json.Channel.Name.replace("- Topic", "") }, - 1000 - ); - - if (!song) { - res.redirect(`/watch?v=${v}`); - } - var lyrics = await musicInfo - .searchLyrics({ title: song.title, artist: song.artist }) - .catch(() => null); - - var ly = ""; - - if (lyrics === null) { - ly = "This Is Where I'd Put The songs lyrics. IF IT HAD ONE "; - } - - if (lyrics) { - ly = lyrics.lyrics.replace(/\n/g, "
"); - } - - renderTemplate(res, req, "poketube-music.ejs", { - url: url_e, - info: song, - color: await modules - .getColors(`https://i.ytimg.com/vi/${v}/maxresdefault.jpg`) - .then((colors) => colors[0].hex()), - engagement: engagement, - process: process, - ip: ip, - video: json, - date: modules.moment(k.Video.uploadDate).format("LL"), - e: e, - k: k, - sha384: sha384, - isMobile: req.useragent.isMobile, - tj: tj, - r: r, - f: f, - t: config.t_url, - optout: t, - lyrics: ly, + res.json(re); }); -}); -} \ No newline at end of file + + app.get("/watch", async function (req, res) { + /* + * QUERYS + * v = Video ID + * e = Embed + * r = Recommended videos + * f = Recent videos from channel + * t = Piwik OptOut + * q = quality obv + */ + var v = req.query.v; + var e = req.query.e; + var r = req.query.r; + var f = req.query.f; + var t = req.query.t; + var q = req.query.quality; + + const info = await modules.fetch("http://ip-api.com/json/"); + const jj = await info.text(); + const ip = JSON.parse(jj); + const isvld = await core.isvalidvideo(v); + + if (isvld) { + for (let i = 0; i < 3; i++) { + try { + core.video(v).then((data) => { + const k = data.video; + const json = data.json; + const engagement = data.engagement; + var inv_comments = data.comments; + const inv_vid = data.vid; + + if (!data.comments) inv_comments = "Disabled"; + + if (!core.video(v).b) { + var nnn = ""; + var badges = ""; + var comments = ""; + } + + if (!v) res.redirect("/"); + + if (q === "medium") { + var url = `https://inv.vern.cc/latest_version?id=${v}&itag=18&local=true`; + } + + const desc = data.desc; + if (d) { + var d = desc.toString().replace(/\n/g, "
"); + } + + if (d === "[object Object]") { + var d = false; + } + + renderTemplate(res, req, "poketube.ejs", { + color: data.color, + engagement: engagement, + video: json, + date: k.Video.uploadDate, + e: e, + k: k, + process: process, + sha384: sha384, + isMobile: req.useragent.isMobile, + tj: data.channel, + r: r, + qua: q, + inv: inv_comments, + ip: ip, + convert: convert, + wiki: data.wiki, + f: f, + t: config.t_url, + optout: t, + badges: badges, + desc: desc, + comments: comments, + n: nnn, + inv_vid, + lyrics: "", + }); + }); + break; + } catch (err) { + if (err.status === 503) { + // retry after a bit + await new Promise((resolve) => setTimeout(resolve, 1000)); + } else { + return ""; + } + } + } + } else { + res.redirect("/"); + } + }); + + app.get("/music", async function (req, res) { + /* + * QUERYS + * v = Video ID + * e = Embed + * r = Recommended videos + * f = Recent videos from channel + * t = Piwik OptOut + * q = quality obv + */ + var v = req.query.v; + var e = req.query.e; + var r = req.query.r; + var f = req.query.f; + var t = req.query.t; + + const info = await modules.fetch("http://ip-api.com/json/"); + const n = await info.text(); + const ip = JSON.parse(n); + + if (!v) res.redirect("/"); + + var fetching = await fetcher(v); + + const json = fetching.video.Player; + + const video = await modules.fetch(config.tubeApi + `video?v=${v}`); + + const h = await video.text(); + const k = JSON.parse(modules.toJson(h)); + + if (!json.Channel.Name.endsWith(" - Topic")) { + res.redirect(`/watch?v=${v}`); + } + + //video + var url = `https://tube.kuylar.dev/proxy/media/${v}/18`; + + // encryption + const url_e = + url + + "?e=" + + sha384(k.Video.Channel.id) + + sha384(k.Video.Channel.id) + + "Piwik" + + sha384(config.t_url); + + // channel info + const engagement = fetching.engagement; + const channel = await modules.fetch( + config.tubeApi + `channel?id=${k.Video.Channel.id}&tab=videos` + ); + const c = await channel.text(); + const tj = JSON.parse(modules.toJson(c)); + + // info + const song = await musicInfo.searchSong( + { + title: k.Video.Title, + artist: json.Channel.Name.replace("- Topic", ""), + }, + 1000 + ); + + if (!song) { + res.redirect(`/watch?v=${v}`); + } + var lyrics = await musicInfo + .searchLyrics({ title: song.title, artist: song.artist }) + .catch(() => null); + + var ly = ""; + + if (lyrics === null) { + ly = "This Is Where I'd Put The songs lyrics. IF IT HAD ONE "; + } + + if (lyrics) { + ly = lyrics.lyrics.replace(/\n/g, "
"); + } + + renderTemplate(res, req, "poketube-music.ejs", { + url: url_e, + info: song, + color: await modules + .getColors(`https://i.ytimg.com/vi/${v}/maxresdefault.jpg`) + .then((colors) => colors[0].hex()), + engagement: engagement, + process: process, + ip: ip, + video: json, + date: modules.moment(k.Video.uploadDate).format("LL"), + e: e, + k: k, + sha384: sha384, + isMobile: req.useragent.isMobile, + tj: tj, + r: r, + f: f, + t: config.t_url, + optout: t, + lyrics: ly, + }); + }); +};