mirror of
https://github.com/skylord123/node-red-contrib-gamedig.git
synced 2025-04-10 08:03:08 -06:00
- update version to 2.1.2
- fixed server type list - bump gamedig to 4.0.6
This commit is contained in:
parent
e2e8119d7f
commit
9d200b60a1
921
package-lock.json
generated
921
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -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"
|
||||
}
|
||||
}
|
||||
|
@ -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>' +
|
||||
|
@ -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);
|
||||
});
|
||||
};
|
Loading…
x
Reference in New Issue
Block a user