mirror of
https://codeberg.org/ashley/poke.git
synced 2024-11-22 17:17:49 +01:00
Refactor code :3
This commit is contained in:
parent
a6116e6f9d
commit
7a28bf1e48
1 changed files with 135 additions and 78 deletions
|
@ -1,18 +1,40 @@
|
|||
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");
|
||||
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");
|
||||
const media_proxy = require("../libpoketube-video.js");
|
||||
const atmos = require("../../../pokeatmosurls.json");
|
||||
|
||||
|
||||
function linkify(text) {
|
||||
// regular expression to match URLs
|
||||
const urlRegex = /(https?:\/\/[^\s]+)/g;
|
||||
|
||||
return text.replace(urlRegex, (url) => {
|
||||
// regular expression to match URLs
|
||||
const urlRegex = /(https?:\/\/[^\s]+)/g;
|
||||
|
||||
return text.replace(urlRegex, (url) => {
|
||||
// wrap the URL in an <a> tag with the URL as the href attribute
|
||||
return `<a href="/api/redirect?u=${btoa(url.replace(/twitter\.com/g, "nitter.net").replace(/reddit\.com/g, "teddit.net").replace("https://youtube.com", "").replace("https://youtu.be", ""))}" target="_blank">${url}</a>`;
|
||||
});
|
||||
}
|
||||
return `<a href="/api/redirect?u=${btoa(
|
||||
url
|
||||
.replace(/twitter\.com/g, "nitter.net")
|
||||
.replace(/reddit\.com/g, "teddit.net")
|
||||
.replace("https://youtube.com", "")
|
||||
.replace("https://youtu.be", "")
|
||||
)}" target="_blank">${url}</a>`;
|
||||
});
|
||||
}
|
||||
|
||||
const sha384 = modules.hash;
|
||||
const fetch = modules.fetch;
|
||||
|
@ -118,23 +140,29 @@ function getJson(str) {
|
|||
}
|
||||
}
|
||||
|
||||
/* support button */
|
||||
const PATREON_REGEX = /https:\/\/www.patreon.com\/(?<name>[\w\d_-]+)/;
|
||||
|
||||
/* connections */
|
||||
const X_REGEX = /https:\/\/twitter.com\/(?<name>[\w\d_-]+)/;
|
||||
const CORD_REGEX = /https:\/\/discord.gg\/(?<name>[\w\d_-]+)/;
|
||||
const TWITCH_REGEX = /https:\/\/twitch.tv\/(?<name>[\w\d_-]+)/;
|
||||
const REDDIT_REGEX = /https:\/\/reddit\.com\/r\/(?<name>[\w\d_-]+)/;
|
||||
const INSTAGRAM_REGEX = /https:\/\/www.instagram.com\/(?<name>[\w\d_-]+)/;
|
||||
|
||||
module.exports = function (app, config, renderTemplate) {
|
||||
app.get("/encryption", async function (req, res) {
|
||||
|
||||
res.json("error in parsing");
|
||||
|
||||
res.json("error in parsing");
|
||||
});
|
||||
|
||||
app.get("/old", function (req, res) {
|
||||
app.get("/old", function (req, res) {
|
||||
const v = req.query.v;
|
||||
|
||||
renderTemplate(res, req, "poketube-old.ejs", {
|
||||
v,
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
app.get("/watch", async (req, res) => {
|
||||
const { dm, v, e, r, f, m, quality: q, a, universe } = req.query;
|
||||
|
||||
|
@ -149,13 +177,10 @@ module.exports = function (app, config, renderTemplate) {
|
|||
|
||||
const u = await media_proxy(v);
|
||||
|
||||
const secure = [
|
||||
"poketube.fun"
|
||||
].includes(req.hostname);
|
||||
const secure = ["poketube.fun"].includes(req.hostname);
|
||||
const verify = req.hostname === "pt.zzls.xyz";
|
||||
|
||||
|
||||
core.video(v).then((data) => {
|
||||
core.video(v).then((data) => {
|
||||
try {
|
||||
const k = data?.video;
|
||||
const json = data?.json;
|
||||
|
@ -169,81 +194,113 @@ core.video(v).then((data) => {
|
|||
d = desc.toString().replace(/\n/g, " <br> ");
|
||||
}
|
||||
|
||||
const support = (String(inv_vid.description) !== "[object Object]") ? (PATREON_REGEX.exec(inv_vid.description) ?? {}).groups : undefined;
|
||||
const descriptionString = String(inv_vid.description);
|
||||
|
||||
function extractInfo(regex) {
|
||||
return descriptionString !== "[object Object]"
|
||||
? (regex.exec(descriptionString) ?? {}).groups
|
||||
: undefined;
|
||||
}
|
||||
|
||||
const support = extractInfo(PATREON_REGEX);
|
||||
const twitter = extractInfo(X_REGEX);
|
||||
const discord = extractInfo(CORD_REGEX);
|
||||
const twitch = extractInfo(TWITCH_REGEX);
|
||||
const reddit = extractInfo(REDDIT_REGEX);
|
||||
const instagram = extractInfo(INSTAGRAM_REGEX);
|
||||
|
||||
let badges = "";
|
||||
let comments = "";
|
||||
let nnn = "";
|
||||
|
||||
if (inv_vid?.error === "The uploader has not made this video available in your country" || inv_vid?.error === "This video is not available") {
|
||||
res.send("error: " + inv_vid.error + " please refresh the page please qt");
|
||||
}
|
||||
|
||||
var uaos = req.useragent.os
|
||||
const browser = req.useragent.browser;
|
||||
const IsOldWindows = (uaos === "Windows 7" || uaos === "Windows 8") && browser === "Firefox";
|
||||
|
||||
if (uaos === "Windows XP" || uaos === "Windows Vista") res.redirect("/lite?v=" + req.query.v);
|
||||
if (
|
||||
inv_vid?.error ===
|
||||
"The uploader has not made this video available in your country" ||
|
||||
inv_vid?.error === "This video is not available"
|
||||
) {
|
||||
res.send(
|
||||
"error: " + inv_vid.error + " please refresh the page please qt"
|
||||
);
|
||||
}
|
||||
|
||||
var uaos = req.useragent.os;
|
||||
const browser = req.useragent.browser;
|
||||
const IsOldWindows =
|
||||
(uaos === "Windows 7" || uaos === "Windows 8") &&
|
||||
browser === "Firefox";
|
||||
|
||||
if (uaos === "Windows XP" || uaos === "Windows Vista")
|
||||
res.redirect("/lite?v=" + req.query.v);
|
||||
|
||||
try {
|
||||
renderTemplate(res, req, "poketube.ejs", {
|
||||
color: data.color,
|
||||
color2: data.color2,
|
||||
linkify,
|
||||
engagement,
|
||||
IsOldWindows,
|
||||
support,
|
||||
u:u.url,
|
||||
isvidious:u.isInvidiousURL,
|
||||
video: json,
|
||||
date: k.Video.uploadDate,
|
||||
e,
|
||||
a,
|
||||
k,
|
||||
dm,
|
||||
useragent:req.useragent,
|
||||
verify,
|
||||
secure,
|
||||
process,
|
||||
sha384,
|
||||
lightOrDark,
|
||||
isMobile: req.useragent.isMobile,
|
||||
tj: data.channel,
|
||||
r,
|
||||
qua: q,
|
||||
inv: inv_comments,
|
||||
convert,
|
||||
universe,
|
||||
wiki: data.wiki,
|
||||
f,
|
||||
t: config.t_url,
|
||||
optout: m,
|
||||
badges,
|
||||
desc,
|
||||
comments,
|
||||
n: nnn,
|
||||
inv_vid,
|
||||
lyrics: "",
|
||||
});
|
||||
renderTemplate(res, req, "poketube.ejs", {
|
||||
color: data.color,
|
||||
color2: data.color2,
|
||||
linkify,
|
||||
engagement,
|
||||
IsOldWindows,
|
||||
support,
|
||||
u: u.url,
|
||||
isvidious: u.isInvidiousURL,
|
||||
video: json,
|
||||
date: k.Video.uploadDate,
|
||||
e,
|
||||
a,
|
||||
twitter,
|
||||
k,
|
||||
dm,
|
||||
instagram,
|
||||
useragent: req.useragent,
|
||||
verify,
|
||||
discord,
|
||||
twitch,
|
||||
reddit,
|
||||
secure,
|
||||
process,
|
||||
sha384,
|
||||
lightOrDark,
|
||||
isMobile: req.useragent.isMobile,
|
||||
tj: data.channel,
|
||||
r,
|
||||
qua: q,
|
||||
inv: inv_comments,
|
||||
convert,
|
||||
universe,
|
||||
wiki: data.wiki,
|
||||
f,
|
||||
t: config.t_url,
|
||||
optout: m,
|
||||
badges,
|
||||
desc,
|
||||
comments,
|
||||
n: nnn,
|
||||
inv_vid,
|
||||
lyrics: "",
|
||||
});
|
||||
} catch {
|
||||
return;
|
||||
return;
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
return res.redirect("/?fromerror=41_generic_error");
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
return res.redirect("/?fromerror=41_generic_error");
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
app.get("/lite", async function (req, res) {
|
||||
const { v, e, r, f, t, quality: q } = req.query;
|
||||
|
||||
try {
|
||||
|
||||
const info = await modules.fetch("http://ip-api.com/json/");
|
||||
const ip = await info.json();
|
||||
|
||||
const {video: k,json,engagement,comments: inv_comments,vid: inv_vid,} = await core.video(v);
|
||||
const {
|
||||
video: k,
|
||||
json,
|
||||
engagement,
|
||||
comments: inv_comments,
|
||||
vid: inv_vid,
|
||||
} = await core.video(v);
|
||||
|
||||
const data = await core.video(v);
|
||||
const color = data.color;
|
||||
|
@ -260,7 +317,7 @@ core.video(v).then((data) => {
|
|||
color,
|
||||
color2,
|
||||
engagement,
|
||||
u:u.url,
|
||||
u: u.url,
|
||||
video: json,
|
||||
date: k.Video.uploadDate,
|
||||
e,
|
||||
|
@ -272,7 +329,7 @@ core.video(v).then((data) => {
|
|||
tj,
|
||||
r,
|
||||
qua: q,
|
||||
isvidious:u.isInvidiousURL,
|
||||
isvidious: u.isInvidiousURL,
|
||||
inv: comments,
|
||||
ip,
|
||||
convert,
|
||||
|
|
Loading…
Reference in a new issue