From ddee8f9c79fc14d8452d1cb0d62f886bd3bf7df2 Mon Sep 17 00:00:00 2001 From: Ashley Date: Wed, 9 Nov 2022 17:51:10 +0100 Subject: [PATCH] Superinit!!! --- src/libpoketube/init/page-api.js | 79 ++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 src/libpoketube/init/page-api.js diff --git a/src/libpoketube/init/page-api.js b/src/libpoketube/init/page-api.js new file mode 100644 index 00000000..8e54632e --- /dev/null +++ b/src/libpoketube/init/page-api.js @@ -0,0 +1,79 @@ + const { fetcher,core, wiki,musicInfo, modules, version, initlog, init,} = require("../libpoketube-initsys.js"); +const { + IsJsonString, + convert, + getFirstLine, + capitalizeFirstLetter, + turntomins, + getRandomInt, + getRandomArbitrary, +} = require("../ptutils/libpt-coreutils.js"); + + module.exports = function (app, config, renderTemplate) { + + +app.get("/api/search", async (req, res) => { + const query = req.query.query; + + if (!query) { + return res.redirect("/"); + } + return res.redirect(`/search?query=${query}`); +}); + +app.get("/api/video/download", async function (req, res) { + var v = req.query.v; + + var format = "mp4"; + var q = "22"; + if (req.query.q) q = req.query.q; + if (req.query.f) { + var format = "mp3"; + } + var fetching = await fetcher(v); + + const json = fetching.video.Player; + + const url = `https://tube.kuylar.dev/proxy/download/${v}/${q}/${json.Title}.${format}`; + + res.redirect(url); +}); + +app.get("/api/video/downloadjson", async function (req, res) { + var v = req.query.v; + var fetching = await fetcher(v); + const url = fetching.video.Player.Formats.Format[1].URL; + res.json(url); +}); + +app.get("/api/subtitles", async (req, res) => { + const id = req.query.v; + const l = req.query.h; + + const url = `https://tube.kuylar.dev/proxy/caption/${id}/${l}/`; + + let f = await modules.fetch(url); + const body = await f.text(); + + res.send(body); +}); + +app.get("/api/redirect", async (req, res) => { + const red_url = req.query.u; + + if (!red_url) { + res.redirect("/"); + } + + res.redirect(red_url); +}); + +app.get("/api/opensearch", async (req, res) => { + res.sendFile(__dirname + `/opensearch.xml`); +}); + +app.get("/api/instances.json", async (req, res) => { + res.sendFile(__dirname + `/instances.json`); +}); + + }); \ No newline at end of file