poke/src/libpoketube/init/superinit.js

95 lines
2.5 KiB
JavaScript
Raw Normal View History

2023-09-13 19:25:51 +02:00
const {
fetcher,
core,
wiki,
musicInfo,
modules,
version,
initlog,
} = require("../libpoketube-initsys.js");
const {
IsJsonString,
convert,
getFirstLine,
capitalizeFirstLetter,
turntomins,
getRandomInt,
getRandomArbitrary,
} = require("../ptutils/libpt-coreutils.js");
2022-11-16 11:26:47 +01:00
const { api } = require("../init/pages-api.js");
2022-11-09 17:47:46 +01:00
function init(app, config, rendertemplate) {
2022-12-05 18:43:26 +01:00
var didstart = false;
2022-12-25 17:10:51 +01:00
2022-12-05 18:43:26 +01:00
initlog("wait a few mins... pt on timeout rn");
2022-11-16 11:26:47 +01:00
2022-12-05 18:43:26 +01:00
app.get("/*", function (req, res, next) {
2023-09-13 19:25:51 +02:00
if (didstart) return next();
2022-11-16 11:26:47 +01:00
2023-09-13 19:25:51 +02:00
return rendertemplate(res, req, "timeout.ejs");
2022-12-05 18:43:26 +01:00
});
2022-11-16 11:26:47 +01:00
2022-12-05 18:43:26 +01:00
setTimeout(function () {
didstart = true;
2022-11-16 11:26:47 +01:00
2022-12-05 18:43:26 +01:00
initlog("Starting superinit");
initlog("[START] Load pages");
if (Math.random() < 0.5) {
initlog("https://poketube.fun/watch?v=lpiB2wMc49g");
2022-11-16 11:26:47 +01:00
}
2022-12-05 18:43:26 +01:00
try {
2023-09-13 19:25:51 +02:00
const modulesToLoad = [
{ name: "video pages", path: "../init/pages-video.js" },
{ name: "redirects/old pages", path: "../init/pages-redir.js" },
{ name: "Download and channel pages", path: "../init/pages-channel-and-download.js",},
{ name: "api pages", path: "../init/pages-api.js" },
{ name: "static pages", path: "../init/pages-static.js" },
{ name: "main pages", path: "../init/pages-404-and-main.js" },
];
for (const moduleInfo of modulesToLoad) {
initlog(`Loading ${moduleInfo.name}`);
require(moduleInfo.path)(app, config, rendertemplate);
initlog(`Loaded ${moduleInfo.name}`);
}
2022-12-05 18:43:26 +01:00
initlog("[OK] Load pages");
initlog("Loaded pages - initing poketube finnished :3");
2023-09-13 19:25:51 +02:00
2022-12-05 18:43:26 +01:00
setTimeout(function () {
2023-01-31 11:47:34 +01:00
setInterval(function () {
/* PokeTube Update daemon - checks for updates in poketube */
(async () => {
2023-03-09 16:50:19 +01:00
const url = `https://poketube.fun/api/version.json?v=3`;
2023-01-31 11:47:34 +01:00
let f = await modules
.fetch(url)
.then((res) => res.text())
.then((json) => JSON.parse(json));
if (f.vernum == api) {
console.log("[UPDATE DAEMON] PokeTube is up to date!");
}
if (f.vernum != api) {
console.warn(
"[UPDATE DAEMON] PokeTube is out of date! please re-clone the poketube repo :p "
);
}
})();
2023-06-10 10:14:10 +02:00
}, 1580000); /* setInterval */
2023-09-07 21:00:03 +02:00
}, 30000);
2022-12-05 18:43:26 +01:00
} catch (err) {
initlog("[FAILED] Load pages \n" + err);
2023-09-13 19:25:51 +02:00
console.error(err);
2022-11-16 11:26:47 +01:00
}
2023-09-07 21:00:03 +02:00
}, 30000);
2022-11-09 17:47:46 +01:00
}
module.exports = {
sinit: init,
2023-09-13 19:25:51 +02:00
};