mirror of
https://github.com/karl0ss/homepage.git
synced 2025-04-29 12:03:41 +01:00

* Adding Counter-Strike: Global Offensive (CSGO) Adding Counter-Strike: Global Offensive (CSGO) widget * Changed to GameDig Converted csgo widget to gamedig Added game server type as widget parameter Added more fields * Limited widget displayed fields to 4 * Moved fields limit to gamedig widget
38 lines
1.0 KiB
JavaScript
38 lines
1.0 KiB
JavaScript
import createLogger from "utils/logger";
|
|
import getServiceWidget from "utils/config/service-helpers";
|
|
|
|
const proxyName = "gamedigProxyHandler";
|
|
const logger = createLogger(proxyName);
|
|
const gamedig = require("gamedig");
|
|
|
|
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,
|
|
});
|
|
|
|
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) {
|
|
logger.error(e);
|
|
|
|
res.status(200).send({
|
|
online: false
|
|
});
|
|
}
|
|
}
|