mirror of
https://github.com/gnmyt/myspeed.git
synced 2026-02-15 10:49:20 -06:00
33 lines
1.1 KiB
JavaScript
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; |