Merge branch 'feature/updated-gamedig-implementation' into feature/update-gamedig-v2

This commit is contained in:
Markus Reisenhofer 2024-07-17 23:30:44 +02:00
commit f553681aea
No known key found for this signature in database
GPG key ID: F9BF452D473D63AC
4 changed files with 34 additions and 29 deletions

16
package-lock.json generated
View file

@ -32,7 +32,7 @@
"express-basic-auth": "~1.2.1", "express-basic-auth": "~1.2.1",
"express-static-gzip": "~2.1.7", "express-static-gzip": "~2.1.7",
"form-data": "~4.0.0", "form-data": "~4.0.0",
"gamedig": "^4.2.0", "gamedig": "^5.0.1",
"html-escaper": "^3.0.3", "html-escaper": "^3.0.3",
"http-cookie-agent": "~5.0.4", "http-cookie-agent": "~5.0.4",
"http-graceful-shutdown": "~3.1.7", "http-graceful-shutdown": "~3.1.7",
@ -8665,13 +8665,13 @@
"integrity": "sha512-et9Aq4wlD0cExXEO3r3LWiEEjOzsnG5l/0YSqza7FZLoJqunNT6DedkAXAdeOqAqStkRQahQiPFjx2WCg4SOtg==", "integrity": "sha512-et9Aq4wlD0cExXEO3r3LWiEEjOzsnG5l/0YSqza7FZLoJqunNT6DedkAXAdeOqAqStkRQahQiPFjx2WCg4SOtg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"cheerio": "^1.0.0-rc.10", "cheerio": "^1.0.0-rc.12",
"gbxremote": "^0.2.1", "gbxremote": "^0.2.1",
"got": "^12.1.0", "got": "^13.0.0",
"iconv-lite": "^0.6.3", "iconv-lite": "^0.6.3",
"long": "^5.2.0", "long": "^5.2.3",
"minimist": "^1.2.6", "minimist": "^1.2.8",
"punycode": "^2.1.1", "punycode": "^2.3.0",
"seek-bzip": "^2.0.0", "seek-bzip": "^2.0.0",
"varint": "^6.0.0" "varint": "^6.0.0"
}, },
@ -8679,7 +8679,7 @@
"gamedig": "bin/gamedig.js" "gamedig": "bin/gamedig.js"
}, },
"engines": { "engines": {
"node": ">=14.0.0" "node": ">=16.20.0"
} }
}, },
"node_modules/gauge": { "node_modules/gauge": {
@ -9015,7 +9015,7 @@
"responselike": "^3.0.0" "responselike": "^3.0.0"
}, },
"engines": { "engines": {
"node": ">=14.16" "node": ">=16"
}, },
"funding": { "funding": {
"url": "https://github.com/sindresorhus/got?sponsor=1" "url": "https://github.com/sindresorhus/got?sponsor=1"

View file

@ -97,7 +97,7 @@
"express-basic-auth": "~1.2.1", "express-basic-auth": "~1.2.1",
"express-static-gzip": "~2.1.7", "express-static-gzip": "~2.1.7",
"form-data": "~4.0.0", "form-data": "~4.0.0",
"gamedig": "^4.2.0", "gamedig": "^5.0.1",
"html-escaper": "^3.0.3", "html-escaper": "^3.0.3",
"http-cookie-agent": "~5.0.4", "http-cookie-agent": "~5.0.4",
"http-graceful-shutdown": "~3.1.7", "http-graceful-shutdown": "~3.1.7",

View file

@ -16,7 +16,7 @@ const version = require("../../package.json").version;
const apicache = require("../modules/apicache"); const apicache = require("../modules/apicache");
const { UptimeKumaServer } = require("../uptime-kuma-server"); const { UptimeKumaServer } = require("../uptime-kuma-server");
const { DockerHost } = require("../docker"); const { DockerHost } = require("../docker");
const Gamedig = require("gamedig"); const { GameDig } = require("gamedig");
const jwt = require("jsonwebtoken"); const jwt = require("jsonwebtoken");
const crypto = require("crypto"); const crypto = require("crypto");
const { UptimeCalculator } = require("../uptime-calculator"); const { UptimeCalculator } = require("../uptime-calculator");
@ -696,7 +696,7 @@ class Monitor extends BeanModel {
} }
} else if (this.type === "gamedig") { } else if (this.type === "gamedig") {
try { try {
const state = await Gamedig.query({ const state = await GameDig.query({
type: this.game, type: this.game,
host: this.hostname, host: this.hostname,
port: this.port, port: this.port,

View file

@ -2,21 +2,27 @@ const { log } = require("../../src/util");
const { Settings } = require("../settings"); const { Settings } = require("../settings");
const { sendInfo } = require("../client"); const { sendInfo } = require("../client");
const { checkLogin } = require("../util-server"); const { checkLogin } = require("../util-server");
const GameResolver = require("gamedig/lib/GameResolver"); const { games } = require("gamedig");
const { testChrome } = require("../monitor-types/real-browser-monitor-type"); const { testChrome } = require("../monitor-types/real-browser-monitor-type");
const fs = require("fs"); const fs = require("fs");
const path = require("path"); const path = require("path");
let gameResolver = new GameResolver();
let gameList = null;
/** /**
* Get a game list via GameDig * Get a game list via GameDig
* @returns {object[]} list of games supported by GameDig * @returns {Object} list of games supported by GameDig
*/ */
function getGameList() { function getGameList() {
if (gameList == null) { let gamelist = [];
gameList = gameResolver._readGames().games.sort((a, b) => { gamelist = Object.keys(games).map(key => {
const item = games[key];
return {
keys: [ key ],
pretty: item.name,
options: item.options,
extra: item.extra || {}
};
});
gamelist.sort((a, b) => {
if ( a.pretty < b.pretty ) { if ( a.pretty < b.pretty ) {
return -1; return -1;
} }
@ -25,8 +31,7 @@ function getGameList() {
} }
return 0; return 0;
}); });
} return gamelist;
return gameList;
} }
module.exports.generalSocketHandler = (socket, server) => { module.exports.generalSocketHandler = (socket, server) => {