server_monitor_bot.js aktualisiert
This commit is contained in:
parent
366e09340a
commit
38a13342fe
|
@ -9,6 +9,8 @@ const logDirectory = 'logs/';
|
||||||
let usersAddingServer = {};
|
let usersAddingServer = {};
|
||||||
let isShowingDetails = false;
|
let isShowingDetails = false;
|
||||||
const botStartTime = new Date();
|
const botStartTime = new Date();
|
||||||
|
const { promisify } = require('util');
|
||||||
|
const exec = promisify(require('child_process').exec);
|
||||||
|
|
||||||
|
|
||||||
const developerChatIds = process.env.DEVELOPER_CHAT_IDS.split(',');
|
const developerChatIds = process.env.DEVELOPER_CHAT_IDS.split(',');
|
||||||
|
@ -18,7 +20,7 @@ const bot = new TelegramBot(token, { polling: true });
|
||||||
|
|
||||||
|
|
||||||
if (!tgId) {
|
if (!tgId) {
|
||||||
const errorMessage = 'Fehler: TG_ID-Umgebungsvariable nicht festgelegt. Der Bot wird nicht gestartet.';
|
const errorMessage = 'Fehler: Die ID wurde geändert. Der Bot wird nicht gestartet.';
|
||||||
console.error(errorMessage);
|
console.error(errorMessage);
|
||||||
sendErrorNotification(developerChatIds[0], errorMessage);
|
sendErrorNotification(developerChatIds[0], errorMessage);
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
|
@ -363,36 +365,87 @@ bot.onText(/\/info/, (msg) => {
|
||||||
bot.sendMessage(chatId, infoMessage, options);
|
bot.sendMessage(chatId, infoMessage, options);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Füge diese Funktion hinzu, um Fehlerbenachrichtigungen und das Protokoll zu handhaben
|
// Event-Handler für den Befehl /log_clear
|
||||||
bot.on('polling_error', (error) => {
|
bot.onText(/\/error_clear/, (msg) => {
|
||||||
console.error(`Polling error: ${error.message}`);
|
const chatId = msg.chat.id;
|
||||||
sendErrorNotification(developerChatId, `Polling error: ${error.message}`);
|
|
||||||
|
// Überprüfen, ob die Chat-ID des Benutzers in den Developer-Chat-IDs enthalten ist
|
||||||
|
if (!isDeveloperChat(chatId)) {
|
||||||
|
bot.sendMessage(chatId, 'Dieser Befehl ist nur für Entwickler');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
const logFileName = 'error.log';
|
||||||
|
const logFilePath = logFileName; // Pfade im gleichen Verzeichnis
|
||||||
|
|
||||||
|
// Lösche den Inhalt des Logfiles
|
||||||
|
fs.writeFileSync(logFilePath, '');
|
||||||
|
|
||||||
|
bot.sendMessage(chatId, 'Der Log-Inhalt wurde erfolgreich gelöscht.');
|
||||||
|
} catch (error) {
|
||||||
|
console.error(`Fehler beim Löschen des Log-Inhalts: ${error.message}`);
|
||||||
|
bot.sendMessage(chatId, 'Fehler beim Löschen des Log-Inhalts.');
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
process.on('unhandledRejection', (reason, promise) => {
|
// Event-Handler für den Befehl /error_send
|
||||||
console.error('Unhandled rejection:', reason);
|
bot.onText(/\/error_send/, (msg) => {
|
||||||
sendErrorNotification(developerChatId, `Unhandled rejection: ${reason}`);
|
const chatId = msg.chat.id;
|
||||||
});
|
|
||||||
|
|
||||||
process.on('uncaughtException', (error) => {
|
// Überprüfen, ob die Chat-ID des Benutzers in den Developer-Chat-IDs enthalten ist
|
||||||
console.error('Uncaught exception:', error);
|
if (!isDeveloperChat(chatId)) {
|
||||||
sendErrorNotification(developerChatId, `Uncaught exception: ${error}`);
|
bot.sendMessage(chatId, 'Dieser Befehl ist nur für Entwickler');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
const logFileName = 'error.log';
|
||||||
|
const logFilePath = logFileName; // Pfade im gleichen Verzeichnis
|
||||||
|
|
||||||
|
// Überprüfe, ob die Logdatei existiert
|
||||||
|
if (fs.existsSync(logFilePath)) {
|
||||||
|
// Sende die Logdatei als Dokument an den Entwickler
|
||||||
|
bot.sendDocument(chatId, logFilePath);
|
||||||
|
} else {
|
||||||
|
bot.sendMessage(chatId, `Die Logdatei ${logFileName} existiert nicht.`);
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error(`Fehler beim Senden der Logdatei: ${error.message}`);
|
||||||
|
bot.sendMessage(chatId, 'Fehler beim Senden der Logdatei.');
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Füge diese Funktion hinzu, um Fehlerbenachrichtigungen und das Protokoll zu handhaben
|
// Füge diese Funktion hinzu, um Fehlerbenachrichtigungen und das Protokoll zu handhaben
|
||||||
bot.on('polling_error', (error) => {
|
bot.on('polling_error', (error) => {
|
||||||
console.error(`Polling error: ${error.message}`);
|
console.error(`Polling error: ${error.message}`);
|
||||||
sendErrorNotification(developerChatId, `Polling error: ${error.message}`);
|
sendErrorNotification(developerChatIds, `Polling error: ${error.message}`);
|
||||||
});
|
});
|
||||||
|
|
||||||
process.on('unhandledRejection', (reason, promise) => {
|
process.on('unhandledRejection', (reason, promise) => {
|
||||||
console.error('Unhandled rejection:', reason);
|
console.error('Unhandled rejection:', reason);
|
||||||
sendErrorNotification(developerChatId, `Unhandled rejection: ${reason}`);
|
sendErrorNotification(developerChatIds, `Unhandled rejection: ${reason}`);
|
||||||
});
|
});
|
||||||
|
|
||||||
process.on('uncaughtException', (error) => {
|
process.on('uncaughtException', (error) => {
|
||||||
console.error('Uncaught exception:', error);
|
console.error('Uncaught exception:', error);
|
||||||
sendErrorNotification(developerChatId, `Uncaught exception: ${error}`);
|
sendErrorNotification(developerChatIds, `Uncaught exception: ${error}`);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Füge diese Funktion hinzu, um Fehlerbenachrichtigungen und das Protokoll zu handhaben
|
||||||
|
bot.on('polling_error', (error) => {
|
||||||
|
console.error(`Polling error: ${error.message}`);
|
||||||
|
sendErrorNotification(developerChatIds, `Polling error: ${error.message}`);
|
||||||
|
});
|
||||||
|
|
||||||
|
process.on('unhandledRejection', (reason, promise) => {
|
||||||
|
console.error('Unhandled rejection:', reason);
|
||||||
|
sendErrorNotification(developerChatIds, `Unhandled rejection: ${reason}`);
|
||||||
|
});
|
||||||
|
|
||||||
|
process.on('uncaughtException', (error) => {
|
||||||
|
console.error('Uncaught exception:', error);
|
||||||
|
sendErrorNotification(developerChatIds, `Uncaught exception: ${error}`);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Funktion zum Senden von Fehlerbenachrichtigungen und Erstellen des Fehlerprotokolls
|
// Funktion zum Senden von Fehlerbenachrichtigungen und Erstellen des Fehlerprotokolls
|
||||||
|
@ -566,10 +619,22 @@ function sendStatusMessage(chatId, serverName, serverStatus) {
|
||||||
bot.sendMessage(chatId, statusMessage);
|
bot.sendMessage(chatId, statusMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
bot.onText(/\/uptime/, async (msg) => {
|
// Funktion, um die Bot-Uptime in Tagen, Stunden und Minuten zu erhalten
|
||||||
|
function getBotUptime() {
|
||||||
|
const uptimeMilliseconds = new Date() - botStartTime; // botStartTime sollte irgendwo definiert und beim Bot-Start festgelegt sein
|
||||||
|
|
||||||
|
// Berechne Tage, Stunden und Minuten
|
||||||
|
const days = Math.floor(uptimeMilliseconds / (1000 * 60 * 60 * 24));
|
||||||
|
const hours = Math.floor((uptimeMilliseconds % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
|
||||||
|
const minutes = Math.floor((uptimeMilliseconds % (1000 * 60 * 60)) / (1000 * 60));
|
||||||
|
|
||||||
|
return { days, hours, minutes };
|
||||||
|
}
|
||||||
|
|
||||||
|
bot.onText(/\/uptime/, (msg) => {
|
||||||
const chatId = msg.chat.id;
|
const chatId = msg.chat.id;
|
||||||
const uptime = await getUptime();
|
const { days, hours, minutes } = getBotUptime();
|
||||||
bot.sendMessage(chatId, `Bot Uptime: ${uptime}`);
|
bot.sendMessage(chatId, `Bot Uptime: ${days} Tage, ${hours} Stunden und ${minutes} Minuten`);
|
||||||
});
|
});
|
||||||
|
|
||||||
bot.onText(/\/start/, (msg) => {
|
bot.onText(/\/start/, (msg) => {
|
||||||
|
@ -926,7 +991,9 @@ if (isDeveloperChat(chatId)) {
|
||||||
'- /error: Zeigt den error Log an\n' +
|
'- /error: Zeigt den error Log an\n' +
|
||||||
'- /stats: Zeigt an, wie viele Personen den Bot nutzen\n' +
|
'- /stats: Zeigt an, wie viele Personen den Bot nutzen\n' +
|
||||||
'- /user_id Zeigt eine Liste von Usern an die den Bot nutzen\n' +
|
'- /user_id Zeigt eine Liste von Usern an die den Bot nutzen\n' +
|
||||||
`- /user_delete "ID" löscht alle Server des Benutzer`;
|
'- /user_delete "ID" löscht alle Server des Benutzer\n' +
|
||||||
|
'- /error_send schickt die error.log Datei\n' +
|
||||||
|
'- /error_clear löscht alle einträge im error.log';
|
||||||
}
|
}
|
||||||
|
|
||||||
bot.sendMessage(chatId, helpMessage);
|
bot.sendMessage(chatId, helpMessage);
|
||||||
|
|
Loading…
Reference in New Issue