Update src/libpoketube/init/pages-channel-and-download.js

This commit is contained in:
ashley 2024-07-15 20:21:59 +00:00
parent 7767c69ad1
commit 51a2f042c1

View file

@ -184,9 +184,7 @@ module.exports = function (app, config, renderTemplate) {
}); });
app.get("/web", async (req, res) => { app.get("/web", async (req, res) => {
res.redirect("/");
res.redirect("/");
}); });
app.get("/channel/", async (req, res) => { app.get("/channel/", async (req, res) => {
@ -207,7 +205,7 @@ module.exports = function (app, config, renderTemplate) {
if (ID.endsWith("@poketube.fun")) { if (ID.endsWith("@poketube.fun")) {
ID = ID.slice(0, -"@poketube.fun".length); ID = ID.slice(0, -"@poketube.fun".length);
} }
const tab = req.query.tab; const tab = req.query.tab;
const cache = {}; const cache = {};
@ -259,8 +257,8 @@ module.exports = function (app, config, renderTemplate) {
)}/${ID}/?hl=en-US`; )}/${ID}/?hl=en-US`;
const channelINVUrl = `${apiUrl}${ID}/`; const channelINVUrl = `${apiUrl}${ID}/`;
const pronoun = "no pronouns :c" const pronoun = "no pronouns :c";
var [tj, shorts, playlist, stream, c, cinv] = await Promise.all([ var [tj, shorts, playlist, stream, c, cinv] = await Promise.all([
getChannelData(channelUrl), getChannelData(channelUrl),
@ -282,8 +280,6 @@ module.exports = function (app, config, renderTemplate) {
return `https://vid.puffyan.us/vi/${video.videoId}/hqdefault.jpg`; return `https://vid.puffyan.us/vi/${video.videoId}/hqdefault.jpg`;
} }
} }
cache[ID] = { cache[ID] = {
result: { result: {
@ -308,30 +304,48 @@ module.exports = function (app, config, renderTemplate) {
" <br> " " <br> "
); );
const dnoreplace = about?.Description.toString(); const dnoreplace = about?.Description.toString();
if (continuation) {
const currentAuthorId = String(cinv.authorId).trim();
if (continuation) { const firstVideoAuthorId = String(tj.videos[0].authorId).trim();
const currentAuthorId = String(cinv.authorId).trim();
const firstVideoAuthorId = String(tj.videos[0].authorId).trim();
if (currentAuthorId.localeCompare(firstVideoAuthorId) !== 0) {
res.status(400).send("Continuation does not match the channel :c");
}
}
const ChannelFirstVideoObject = await fetch( if (currentAuthorId.localeCompare(firstVideoAuthorId) !== 0) {
`${config.invapi}/videos/${tj.videos[0].videoId}` res.status(400).send("Continuation does not match the channel :c");
) }
.then((res) => res.text()) }
.then((txt) => getJson(txt));
let ChannelFirstVideoObject;
if (tj && tj.videos && tj.videos.length > 0) {
ChannelFirstVideoObject = await fetch(
`${config.invapi}/videos/${tj.videos[0].videoId}`
)
.then((res) => res.text())
.then((txt) => JSON.parse(txt));
} else if (shorts && shorts.videos && shorts.videos.length > 0) {
ChannelFirstVideoObject = await fetch(
`${config.invapi}/videos/${shorts.videos[0].videoId}`
)
.then((res) => res.text())
.then((txt) => JSON.parse(txt));
} else if (stream && stream.videos && stream.videos.length > 0) {
ChannelFirstVideoObject = await fetch(
`${config.invapi}/videos/${stream.videos[0].videoId}`
)
.then((res) => res.text())
.then((txt) => JSON.parse(txt));
} else {
ChannelFirstVideoObject = {
subCountText: "0",
authorVerified: false,
};
}
renderTemplate(res, req, "channel.ejs", { renderTemplate(res, req, "channel.ejs", {
ID, ID,
tab, tab,
shorts, shorts,
firstVideo:ChannelFirstVideoObject, firstVideo: ChannelFirstVideoObject,
j: boutJson, j: boutJson,
sort: sort_by, sort: sort_by,
stream, stream,