import fs from "node:fs"; import { Router } from "express"; import path from "path"; import { fileURLToPath } from "url"; const router = Router(); const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); const downloadDir = path.resolve(__dirname, "../../downloads/mobile"); const currentApk = { packageName: "net.alpla.lst.mobile", versionName: "0.0.1-alpha", versionCode: 1, minSupportedVersionCode: 1, fileName: "lst-mobile.apk", }; router.get("/version", async (req, res) => { const baseUrl = `${req.protocol}://${req.get("host")}`; res.json({ packageName: currentApk.packageName, versionName: currentApk.versionName, versionCode: currentApk.versionCode, minSupportedVersionCode: currentApk.minSupportedVersionCode, downloadUrl: `${baseUrl}/lst/api/mobile/apk/latest`, }); }); router.get("/apk/latest", (_, res) => { const apkPath = path.join(downloadDir, currentApk.fileName); if (!fs.existsSync(apkPath)) { return res.status(404).json({ success: false, message: "APK not found" }); } res.setHeader("Content-Type", "application/vnd.android.package-archive"); res.setHeader( "Content-Disposition", `attachment; filename="${currentApk.fileName}"`, ); return res.sendFile(apkPath); }); export default router;