ddmaster 2.6.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin.js +43 -0
- package/index.js +0 -1
- package/package.json +2 -4
- package/serverlist.js +5 -13
package/bin.js
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const ddmaster = require('./index');
|
|
4
|
+
|
|
5
|
+
const [command, ...args] = process.argv.slice(2);
|
|
6
|
+
|
|
7
|
+
if (command === "find") {
|
|
8
|
+
ddmaster.findDDNetPlayerByName(args.join(" ")).then(async servers => {
|
|
9
|
+
if (servers.length === 0) {
|
|
10
|
+
console.log("Player not found on any server.");
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
console.log(`Count of servers: ${servers.length}`);
|
|
15
|
+
console.log((await ddmaster.getDDNetServers(servers)).join("\n"));
|
|
16
|
+
}).catch(err => {
|
|
17
|
+
console.error('Error:', err);
|
|
18
|
+
});
|
|
19
|
+
} else if (command === "list") {
|
|
20
|
+
ddmaster.getDDNetServers().then(servers => {
|
|
21
|
+
console.log(servers.join("\n"));
|
|
22
|
+
}).catch(err => {
|
|
23
|
+
console.error('Error:', err);
|
|
24
|
+
});
|
|
25
|
+
} else if (command === "raw") {
|
|
26
|
+
ddmaster.getrawDDNetServers().then(servers => {
|
|
27
|
+
console.log(JSON.stringify(servers, null, 2));
|
|
28
|
+
}).catch(err => {
|
|
29
|
+
console.error('Error:', err);
|
|
30
|
+
});
|
|
31
|
+
} else if (command === "info") {
|
|
32
|
+
ddmaster.getinfoserver(args[0]).then(server => {
|
|
33
|
+
console.log(JSON.stringify(server, null, 2));
|
|
34
|
+
}).catch(err => {
|
|
35
|
+
console.error('Error:', err);
|
|
36
|
+
});
|
|
37
|
+
} else {
|
|
38
|
+
console.log("Usage:");
|
|
39
|
+
console.log(" find <playerName> - Найти сервера с игроком");
|
|
40
|
+
console.log(" list - Получить список всех серверов");
|
|
41
|
+
console.log(" raw - Получить сырые данные серверов");
|
|
42
|
+
console.log(" info <address> - Получить информацию о сервере по адресу");
|
|
43
|
+
}
|
package/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ddmaster",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"description": "Позволяет опрашивать мастер-сервер дднета",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -13,7 +13,5 @@
|
|
|
13
13
|
"author": "0374flop",
|
|
14
14
|
"license": "MIT",
|
|
15
15
|
"type": "commonjs",
|
|
16
|
-
"
|
|
17
|
-
"loger0374": "^0.2.0"
|
|
18
|
-
}
|
|
16
|
+
"bin": "./bin.js"
|
|
19
17
|
}
|
package/serverlist.js
CHANGED
|
@@ -3,20 +3,15 @@
|
|
|
3
3
|
|
|
4
4
|
"use strict";
|
|
5
5
|
|
|
6
|
-
const DebugLoger = require('loger0374');
|
|
7
|
-
const loger = new DebugLoger('ddmaster', false, true, null, true);
|
|
8
|
-
|
|
9
6
|
if (typeof fetch === 'undefined') {
|
|
10
7
|
try {
|
|
11
8
|
require.resolve('node-fetch');
|
|
12
|
-
loger.log('Using node-fetch polyfill');
|
|
13
9
|
} catch (e) {
|
|
14
10
|
throw new Error('Node.js <18, npm install node-fetch');
|
|
15
11
|
}
|
|
16
12
|
|
|
17
13
|
const nodeFetch = require('node-fetch');
|
|
18
14
|
global.fetch = nodeFetch.default || nodeFetch;
|
|
19
|
-
loger.log('Polyfilled fetch with node-fetch');
|
|
20
15
|
}
|
|
21
16
|
|
|
22
17
|
/**
|
|
@@ -30,7 +25,7 @@ async function getrawDDNetServers() {
|
|
|
30
25
|
const data = await response.json();
|
|
31
26
|
return data;
|
|
32
27
|
} catch (error) {
|
|
33
|
-
|
|
28
|
+
console.error(error);
|
|
34
29
|
return null;
|
|
35
30
|
}
|
|
36
31
|
}
|
|
@@ -43,7 +38,6 @@ async function getrawDDNetServers() {
|
|
|
43
38
|
function convertudptw(addr) {
|
|
44
39
|
if (typeof addr !== 'string') return null;
|
|
45
40
|
const match = addr.match(/(\d{1,3}(\.\d{1,3}){3}:\d+)/);
|
|
46
|
-
loger.log('convertudptw', addr, '->', match ? match[1] : null);
|
|
47
41
|
return match ? match[1] : null;
|
|
48
42
|
}
|
|
49
43
|
|
|
@@ -56,7 +50,6 @@ async function getDDNetServers(data = null) {
|
|
|
56
50
|
try {
|
|
57
51
|
const servers = data || (await getrawDDNetServers()).servers;
|
|
58
52
|
if (!servers) {
|
|
59
|
-
loger.error('Нет серверов в данных');
|
|
60
53
|
return [];
|
|
61
54
|
}
|
|
62
55
|
|
|
@@ -71,7 +64,7 @@ async function getDDNetServers(data = null) {
|
|
|
71
64
|
}
|
|
72
65
|
return [...new Set(ipv4WithPorts)];
|
|
73
66
|
} catch (err) {
|
|
74
|
-
|
|
67
|
+
console.error(err);
|
|
75
68
|
return [];
|
|
76
69
|
}
|
|
77
70
|
}
|
|
@@ -94,7 +87,6 @@ async function findDDNetPlayerByName(playerName, data = null) {
|
|
|
94
87
|
try {
|
|
95
88
|
const raw = data || await getrawDDNetServers();
|
|
96
89
|
if (!raw || !Array.isArray(raw.servers)) {
|
|
97
|
-
loger.error('Некорректные данные серверов');
|
|
98
90
|
return [];
|
|
99
91
|
}
|
|
100
92
|
|
|
@@ -111,7 +103,7 @@ async function findDDNetPlayerByName(playerName, data = null) {
|
|
|
111
103
|
}
|
|
112
104
|
return resultServers;
|
|
113
105
|
} catch (err) {
|
|
114
|
-
|
|
106
|
+
console.error(err);
|
|
115
107
|
return [];
|
|
116
108
|
}
|
|
117
109
|
}
|
|
@@ -130,10 +122,10 @@ function filterbylocationincludes(servers, location) {
|
|
|
130
122
|
|
|
131
123
|
async function getinfoserver(address) {
|
|
132
124
|
const servers = await getrawDDNetServers();
|
|
133
|
-
const server = servers.find(server =>
|
|
125
|
+
const server = servers.servers.find(server =>
|
|
134
126
|
convertudptw(server.addresses[0]) === address
|
|
135
127
|
);
|
|
136
128
|
return server;
|
|
137
129
|
}
|
|
138
130
|
|
|
139
|
-
module.exports = { getDDNetServers, getrawDDNetServers, convertudptw, findDDNetPlayerByName, filterbycommunity, filterbylocation, filterbylocationincludes,
|
|
131
|
+
module.exports = { getDDNetServers, getrawDDNetServers, convertudptw, findDDNetPlayerByName, filterbycommunity, filterbylocation, filterbylocationincludes, getinfoserver };
|