add cache!!

This commit is contained in:
Ashley 2023-03-03 17:41:19 +00:00
parent f3cc3dc515
commit 4840d52749

View file

@ -1,4 +1,4 @@
/* /*
PokeTube is a Free/Libre youtube front-end ! PokeTube is a Free/Libre youtube front-end !
@ -24,7 +24,7 @@ const sqp =
const config = { const config = {
tubeApi: "https://tube-srv.ashley143.gay/api/", tubeApi: "https://tube-srv.ashley143.gay/api/",
invapi: "https://inv.zzls.xyz/api/v1", invapi: "https://yt.oelrichsgarcia.de/api/v1",
dislikes: "https://returnyoutubedislikeapi.com/votes?videoId=", dislikes: "https://returnyoutubedislikeapi.com/votes?videoId=",
t_url: "https://t.poketube.fun/", // def matomo url t_url: "https://t.poketube.fun/", // def matomo url
}; };
@ -66,12 +66,19 @@ async function channel(id, cnt) {
return { videos, about }; return { videos, about };
} }
const cache = {};
async function video(v) { async function video(v) {
if (v == null) return "Gib ID"; if (v == null) return "Gib ID";
// Check if result is already cached
if (cache[v] && (Date.now() - cache[v].timestamp) < 3600000) {
console.log("Returning cached result");
return cache[v].result;
}
let nightlyRes; let nightlyRes;
var desc = ""; var desc = "";
var iurl = "invidious.privacydev.net";
try { try {
var inv_comments = await fetch(`${config.invapi}/comments/${v}`).then( var inv_comments = await fetch(`${config.invapi}/comments/${v}`).then(
@ -83,37 +90,19 @@ async function video(v) {
var comments = ""; var comments = "";
} }
const urls = [ let vid;
"invidious.sethforprivacy.com",
"invidious.weblibre.org",
"inv.zzls.xyz",
"invidious.privacydev.net"
];
let vid; try {
const videoInfo = await fetch(`https://yt.oelrichsgarcia.de/api/v1/videos/${v}`).then(res => res.text());
vid = await getJson(videoInfo);
} catch (error) {
for (const url of urls) { }
try {
const videoInfo = await fetch(`https://${url}/api/v1/videos/${v}`).then(res => res.text());
vid = await getJson(videoInfo);
switch (true) {
case vid?.descriptionHtml !== "<p></p>": if (!vid) {
break; console.log(`Sorry nya, we couldn't find any information about that video qwq`);
default:
continue;
}
break;
} catch (error) {
continue;
} }
}
if (!vid) {
console.log(`Sorry nya, we couldn't find any information about that video qwq`);
}
if (checkUnexistingObject(vid)) { if (checkUnexistingObject(vid)) {
var a; var a;
@ -140,27 +129,34 @@ if (!vid) {
const nightlyJsonData = getJson(nightlyRes); const nightlyJsonData = getJson(nightlyRes);
return { // Store result in cache
json: data?.video?.Player, cache[v] = {
video: await fetch(`${config.tubeApi}video?v=${v}`) result: {
.then((res) => res.text()) json: data?.video?.Player,
.then((xml) => getJson(toJson(xml))) video: await fetch(`${config.tubeApi}video?v=${v}`)
.catch(" "), .then((res) => res.text())
vid, .then((xml) => getJson(toJson(xml)))
comments, .catch(" "),
engagement: data.engagement, vid,
wiki: summary, comments,
desc: desc, engagement: data.engagement,
color: await getColors( wiki: summary,
`https://i.ytimg.com/vi/${v}/hqdefault.jpg?sqp=${sqp}` desc: desc,
).then((colors) => colors[0].hex()), color: await getColors(
color2: await getColors( `https://i.ytimg.com/vi/${v}/hqdefault.jpg?sqp=${sqp}`
`https://i.ytimg.com/vi/${v}/hqdefault.jpg?sqp=${sqp}` ).then((colors) => colors[0].hex()),
).then((colors) => colors[1].hex()), color2: await getColors(
`https://i.ytimg.com/vi/${v}/hqdefault.jpg?sqp=${sqp}`
).then((colors) => colors[1].hex()),
},
timestamp: Date.now()
}; };
return cache[v].result;
} }
} }
async function search(query, cnt) { async function search(query, cnt) {
if (query == null) return "Gib Query"; if (query == null) return "Gib Query";