homepage-plus/src/widgets/gamedig/proxy.js
teobogdan 2aa7a3898b Chore: update Gamedig (#3841)
Co-Authored-By: shamoon <4887959+shamoon@users.noreply.github.com>
2024-08-12 00:35:03 -07:00

39 lines
996 B
JavaScript

import { GameDig } from "gamedig";
import createLogger from "utils/logger";
import getServiceWidget from "utils/config/service-helpers";
const proxyName = "gamedigProxyHandler";
const logger = createLogger(proxyName);
export default async function gamedigProxyHandler(req, res) {
const { group, service } = req.query;
const serviceWidget = await getServiceWidget(group, service);
const url = new URL(serviceWidget.url);
try {
const serverData = await GameDig.query({
type: serviceWidget.serverType,
host: url.hostname,
port: url.port,
givenPortOnly: true,
checkOldIDs: true,
});
res.status(200).send({
online: true,
name: serverData.name,
map: serverData.map,
players: serverData.players.length,
maxplayers: serverData.maxplayers,
bots: serverData.bots.length,
ping: serverData.ping,
});
} catch (e) {
if (e) logger.error(e);
res.status(200).send({
online: false,
});
}
}