Files
myspeed/server/routes/system.js
2026-01-22 14:54:02 +01:00

33 lines
1.1 KiB
JavaScript

import express from 'express';
import denoConfig from '../../deno.json' with { type: 'json' };
import axios from 'axios';
import password from '../middlewares/password.js';
import * as serverController from '../controller/servers.js';
import * as interfaces from '../util/loadInterfaces.js';
const version = denoConfig.version;
const remote_url = "https://api.github.com/repos/gnmyt/myspeed/releases/latest";
const app = express.Router();
app.get("/version", password(false), async (req, res) => {
if (process.env.PREVIEW_MODE === "true") return res.json({local: version, remote: "0"});
try {
res.json({local: version, remote: ((await axios.get(remote_url)).data.tag_name).replace("v", "")});
} catch (e) {
res.json({local: version, remote: "0"});
}
});
app.get("/server/:provider", password(false), (req, res) => {
if (!["ookla", "libre"].includes(req.params.provider))
return res.status(400).json({message: "Invalid provider"});
res.json(serverController.getByMode(req.params.provider));
});
app.get("/interfaces", password(false), async (req, res) => {
res.json(interfaces.interfaces);
});
export default app;