poke/src/libpoketube/init/page-api.js
2022-11-09 17:51:10 +01:00

79 lines
No EOL
1.7 KiB
JavaScript

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`);
});
});