Merge pull request #9 from skylord123/dev

Update version to 2.1.2
This commit is contained in:
Skylar Sadlier 2023-02-23 23:09:44 -07:00 committed by GitHub
commit facf77e1fa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 430 additions and 541 deletions

921
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{
"name": "node-red-contrib-gamedig",
"version": "2.1.1",
"version": "2.1.2",
"description": "Query for the status of any game server using node-red",
"repository": {
"type": "git",
@ -23,6 +23,6 @@
}
},
"dependencies": {
"gamedig": "^3.0.0"
"gamedig": "^4.0.6"
}
}

View File

@ -30,12 +30,13 @@
oneditprepare: function() {
$.getJSON('/gamedig/types', function(data) {
let html = '<table>' +
'<thead id="query-game-server-types-table"><tr><td><strong>Type</strong></td><td><strong>Name</strong></td></tr></thead>' +
'<thead id="query-game-server-types-table"><tr><td><strong>Type</strong></td><td><strong>Name</strong></td><td><strong>Protocol</strong></td></tr></thead>' +
'<tbody id="query-game-server-type-rows">';
for(var type in data) {
for(let game of data) {
html += "<tr class=\"query-game-server-type-row\">" +
"<td>"+type+"</td>" +
"<td>"+data[type]+"</td>" +
"<td>"+game['type']+"</td>" +
"<td>"+game['name']+"</td>" +
"<td>"+game['protocol']+"</td>" +
"</tr>";
}
html += '</tbody>' +

View File

@ -83,20 +83,31 @@ module.exports = function(RED) {
// gamedig has no way of listing available server types
// so we just use regex to parse the info from the README
// this could break so we also reference the gamedig repo
let availableTypes = fs.readFileSync(require.resolve("gamedig/README.md"))
.toString()
.matchAll(/^\| `(.*)` * \| ([a-zA-Z: (0-9)\-'.]*)/gm),
results = {};
let availableTypesContent = fs.readFileSync(require.resolve("gamedig/games.txt"), 'utf-8')
results = [];
for (const match of availableTypes) {
if(match[1].indexOf("`<br>`") >= 0) {
let names = match[1].split("`<br>`");
results[names[0]] = match[2];
results[names[1]] = match[2];
} else {
results[match[1]] = match[2];
}
}
availableTypesContent
.split(/\r?\n/)
.forEach(line => {
if(
line.trim().length === 0
|| line.trim().length === 0
|| line.trim().startsWith('#')
) {
return;
}
// examples:
// avp2|Aliens versus Predator 2 (2001)|gamespy1|port=27888
// avp2010|Aliens vs. Predator (2010)|valve|port=27015
let [game_type, game_name, game_protocol] = line.split('|');
results.push({
'name': game_type,
'type': game_type,
'protocol': game_protocol
});
});
res.json(results);
});
};