diff --git a/gulpfile.cjs b/gulpfile.cjs index 0d222bc..4a36ae0 100644 --- a/gulpfile.cjs +++ b/gulpfile.cjs @@ -60,7 +60,11 @@ gulp.task("scripts", async () => { .pipe(gulp.dest("dist")); } }); - +gulp.task("commit", () => { + revision = require("child_process").execSync("git rev-parse HEAD").toString().trim(); + fs.writeFileSync("dist/webpage/getupdates", revision); + return new Promise((_) => _()); +}); // Task to copy HTML files gulp.task("copy-html", () => { return gulp @@ -114,5 +118,9 @@ gulp.task("copy-assets", () => { // Default task to run all tasks gulp.task( "default", - gulp.series("clean", gulp.parallel("scripts", "copy-html", "copy-assets"), "copy-translations"), + gulp.series( + "clean", + gulp.parallel("scripts", "copy-html", "copy-assets"), + gulp.parallel("copy-translations", "commit"), + ), ); diff --git a/src/index.ts b/src/index.ts index 6e08ff4..01caaf5 100644 --- a/src/index.ts +++ b/src/index.ts @@ -135,16 +135,6 @@ async function updateInstances(): Promise { updateInstances(); -app.use("/getupdates", async (_req: Request, res: Response) => { - try { - const stats = await fs.stat(path.join(__dirname, "webpage")); - res.send(stats.mtimeMs.toString()); - } catch (error) { - console.error("Error getting updates:", error); - res.status(500).send("Error getting updates"); - } -}); - app.use("/services/oembed", (req: Request, res: Response) => { inviteResponse(req, res, instances); }); diff --git a/src/webpage/localuser.ts b/src/webpage/localuser.ts index fcd4fd4..21835ff 100644 --- a/src/webpage/localuser.ts +++ b/src/webpage/localuser.ts @@ -2117,17 +2117,16 @@ class Localuser { }); } } - { + (async () => { const jankInfo = settings.addButton(I18n.jankInfo()); const img = document.createElement("img"); img.src = "/logo.svg"; jankInfo.addHTMLArea(img); img.width = 128; img.height = 128; - jankInfo.addMDText( - I18n.clientDesc("Jank-Rolling", window.location.origin, this.rights.allow + ""), - ); - } + const ver = await (await fetch("/getupdates")).text(); + jankInfo.addMDText(I18n.clientDesc(ver, window.location.origin, this.rights.allow + "")); + })(); settings.show(); } readonly botTokens: Map = new Map();