diff --git a/docs/widgets/services/gamedig.md b/docs/widgets/services/gamedig.md index 6e7eb4d57..454fb2bd7 100644 --- a/docs/widgets/services/gamedig.md +++ b/docs/widgets/services/gamedig.md @@ -14,4 +14,5 @@ widget: type: gamedig serverType: csgo # see https://github.com/gamedig/node-gamedig#games-list url: udp://server.host.or.ip:port + gameToken: # optional, a token used by gamedig with certain games ``` diff --git a/src/utils/config/service-helpers.js b/src/utils/config/service-helpers.js index 0fade417a..17703bbc6 100644 --- a/src/utils/config/service-helpers.js +++ b/src/utils/config/service-helpers.js @@ -304,6 +304,9 @@ export function cleanServiceGroups(groups) { // frigate enableRecentEvents, + // gamedig + gameToken, + // beszel, glances, immich, komga, mealie, pihole, pfsense, speedtest version, @@ -487,6 +490,9 @@ export function cleanServiceGroups(groups) { if (["diskstation", "qnap"].includes(type)) { if (volume) widget.volume = volume; } + if (type === "gamedig") { + if (gameToken) widget.gameToken = gameToken; + } if (type === "kopia") { if (snapshotHost) widget.snapshotHost = snapshotHost; if (snapshotPath) widget.snapshotPath = snapshotPath; diff --git a/src/widgets/gamedig/proxy.js b/src/widgets/gamedig/proxy.js index 79d7fa02b..b9056b6d6 100644 --- a/src/widgets/gamedig/proxy.js +++ b/src/widgets/gamedig/proxy.js @@ -12,13 +12,19 @@ export default async function gamedigProxyHandler(req, res) { const url = new URL(serviceWidget.url); try { - const serverData = await GameDig.query({ + const gamedigOptions = { type: serviceWidget.serverType, host: url.hostname, port: url.port, givenPortOnly: true, checkOldIDs: true, - }); + }; + + if (serviceWidget.gameToken) { + gamedigOptions.token = serviceWidget.gameToken; + } + + const serverData = await GameDig.query(gamedigOptions); res.status(200).send({ online: true,