mirror of
https://github.com/DI0IK/homepage-plus.git
synced 2025-07-10 07:18:47 +00:00
Feature: GameDig Widget (#1717)
* 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
This commit is contained in:
parent
6586af17a3
commit
420aa896d7
9 changed files with 497 additions and 3 deletions
37
src/widgets/gamedig/proxy.js
Normal file
37
src/widgets/gamedig/proxy.js
Normal file
|
@ -0,0 +1,37 @@
|
|||
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
|
||||
});
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue