35 lines
883 B
JavaScript
35 lines
883 B
JavaScript
import { exec as _exec } from 'node:child_process';
|
|
import fetch from 'node-fetch';
|
|
|
|
export default new class {
|
|
exec(cmd) {
|
|
return new Promise((resolve, reject) => {
|
|
_exec(cmd, { maxBuffer: 5e3 * 1024 }, (err, stdout, stderr) => {
|
|
if(err)
|
|
return reject(err);
|
|
if(stderr)
|
|
console.error(stderr);
|
|
resolve({ stdout: stdout });
|
|
});
|
|
});
|
|
};
|
|
|
|
rand(max = 1) {
|
|
return ~~(Math.random() * (max - 1) + 1);
|
|
};
|
|
|
|
async getPlayerlist(world, clanid) {
|
|
const res = await (await fetch(`https://${world}.freewar.de/freewar/dump_players.php`)).text();
|
|
return res.split("\n").map(p => {
|
|
const player = p.split("\t");
|
|
return {
|
|
id: +player[0],
|
|
name: player[1],
|
|
xp: +player[2],
|
|
rasse: player[3],
|
|
clanid: +player[4]
|
|
};
|
|
}).filter(p => p.clanid === clanid)
|
|
};
|
|
};
|