fix log file find/download
This commit is contained in:
3 files changed
+37
-31
No files matched your search
Generated
+2
-2
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "dayzr-bot",
|
"name": "dayzr-bot",
|
||||||
"version": "13.3.23",
|
"version": "13.3.25",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "dayzr-bot",
|
"name": "dayzr-bot",
|
||||||
"version": "13.3.23",
|
"version": "13.3.25",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@discordjs/rest": "^1.1.0",
|
"@discordjs/rest": "^1.1.0",
|
||||||
|
|||||||
+8
-3
@@ -6,7 +6,7 @@ const Logger = require("../util/Logger");
|
|||||||
const crypto = require('crypto');
|
const crypto = require('crypto');
|
||||||
|
|
||||||
// custom util imports
|
// custom util imports
|
||||||
const { DownloadNitradoFile, CheckServerStatus, FetchServerSettings, PostServerSettings, NitradoCredentialStatus } = require('../util/NitradoAPI');
|
const { DownloadNitradoFile, CheckServerStatus, FetchServerSettings, PostServerSettings, NitradoCredentialStatus, GetRemoteDir } = require('../util/NitradoAPI');
|
||||||
const { HandlePlayerLogs, HandleActivePlayersList } = require('../util/LogsHandler');
|
const { HandlePlayerLogs, HandleActivePlayersList } = require('../util/LogsHandler');
|
||||||
const { HandleKillfeed, UpdateLastDeathDate } = require('../util/KillfeedHandler');
|
const { HandleKillfeed, UpdateLastDeathDate } = require('../util/KillfeedHandler');
|
||||||
const { HandleExpiredUAVs, HandleEvents, PlaceFireplaceInAlarm } = require('../util/AlarmsHandler');
|
const { HandleExpiredUAVs, HandleEvents, PlaceFireplaceInAlarm } = require('../util/AlarmsHandler');
|
||||||
@@ -349,8 +349,13 @@ class DayzRBot extends Client {
|
|||||||
|
|
||||||
GuildDB.Nitrado.Mission = Missions[settings.settings.config.mission];
|
GuildDB.Nitrado.Mission = Missions[settings.settings.config.mission];
|
||||||
|
|
||||||
if (settings.game_specific.log_files.length == 0) return; // Ignore if no log files on Nitrado server
|
console.log(`${settings.game_specific.path}config`);
|
||||||
const filename = settings.game_specific.log_files.sort((a, b) => a.length - b.length)[0];
|
let filenames = await GetRemoteDir(NitradoCred, c, `${settings.game_specific.path}config`);
|
||||||
|
filenames = filenames.map(path => path.path)
|
||||||
|
filenames = filenames.filter(path => path.includes(".ADM"))
|
||||||
|
const filename = filenames[filenames.length - 1];
|
||||||
|
|
||||||
|
// const filename = settings.game_specific.log_files.sort((a, b) => a.length - b.length)[0];
|
||||||
const path = `${settings.game_specific.path.slice(0, -1)}${filename.split(settings.game)[1]}`;
|
const path = `${settings.game_specific.path.slice(0, -1)}${filename.split(settings.game)[1]}`;
|
||||||
|
|
||||||
// Ensure Player List is logged for next update
|
// Ensure Player List is logged for next update
|
||||||
|
|||||||
+27
-26
@@ -63,36 +63,37 @@ const HandlePlayerBan = async (nitrado_cred, client, gamertag, ban) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const GetRemoteDir = async (nitrado_cred, client, dir="") => {
|
|
||||||
const dirParam = client.exists(dir) ? `?dir=${dir}` : "";
|
|
||||||
for (let retries = 0; retries <= maxRetries; retries++) {
|
|
||||||
try {
|
|
||||||
const res = await fetch(`https://api.nitrado.net/services/${nitrado_cred.ServerID}/gameservers/file_server/list${dirParam}`, {
|
|
||||||
headers: {
|
|
||||||
"Authorization": nitrado_cred.Auth
|
|
||||||
}
|
|
||||||
}).then(response =>
|
|
||||||
response.json().then(data => data)
|
|
||||||
).then(res => res);
|
|
||||||
|
|
||||||
if (res.status === "error") return 1;
|
|
||||||
|
|
||||||
return res.data.entries;
|
|
||||||
} catch (error) {
|
|
||||||
client.error(`GetRemoteDir: Error connecting to server (${nitrado_cred.ServerID}): ${error}`);
|
|
||||||
if (retries == maxRetries) {
|
|
||||||
client.error(`GetRemoteDir: Error connecting to server (${nitrado_cred.ServerID}) after ${maxRetries} retries`);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
await new Promise(resolve => setTimeout(resolve, retryDelay)); // Delay before retrying
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Public functions (called externally)
|
// Public functions (called externally)
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
|
||||||
|
|
||||||
|
GetRemoteDir: async (nitrado_cred, client, dir="") => {
|
||||||
|
const dirParam = client.exists(dir) ? `?dir=${dir}` : "";
|
||||||
|
for (let retries = 0; retries <= maxRetries; retries++) {
|
||||||
|
try {
|
||||||
|
const res = await fetch(`https://api.nitrado.net/services/${nitrado_cred.ServerID}/gameservers/file_server/list${dirParam}`, {
|
||||||
|
headers: {
|
||||||
|
"Authorization": nitrado_cred.Auth
|
||||||
|
}
|
||||||
|
}).then(response =>
|
||||||
|
response.json().then(data => data)
|
||||||
|
).then(res => res);
|
||||||
|
|
||||||
|
if (res.status === "error") return 1;
|
||||||
|
|
||||||
|
return res.data.entries;
|
||||||
|
} catch (error) {
|
||||||
|
client.error(`GetRemoteDir: Error connecting to server (${nitrado_cred.ServerID}): ${error}`);
|
||||||
|
if (retries == maxRetries) {
|
||||||
|
client.error(`GetRemoteDir: Error connecting to server (${nitrado_cred.ServerID}) after ${maxRetries} retries`);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
await new Promise(resolve => setTimeout(resolve, retryDelay)); // Delay before retrying
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
DownloadNitradoFile: async(nitrado_cred, client, filename, outputDir) => {
|
DownloadNitradoFile: async(nitrado_cred, client, filename, outputDir) => {
|
||||||
for (let retries = 0; retries <= maxRetries; retries++) {
|
for (let retries = 0; retries <= maxRetries; retries++) {
|
||||||
try {
|
try {
|
||||||
|
|||||||
Reference in new issue
Block a user