bot.js aktualisiert

This commit is contained in:
M_Viper 2024-10-18 23:38:51 +00:00
parent 9476a48234
commit d016fc1734
1 changed files with 74 additions and 2 deletions

76
bot.js
View File

@ -170,6 +170,35 @@ const sendQueuedReportsToAdmin = (adminId) => {
fs.writeFileSync(reportFilePath, JSON.stringify(reportsData, null, 2)); // Speichern der aktualisierten Daten fs.writeFileSync(reportFilePath, JSON.stringify(reportsData, null, 2)); // Speichern der aktualisierten Daten
}; };
// Urlaubsdaten speichern
let vacationData = {};
// Befehl /urlaub zum Eintragen von Urlaub
bot.onText(/\/urlaub (.+)/, (msg, match) => {
const chatId = msg.chat.id;
const userId = msg.from.id.toString();
const vacationInfo = match[1].trim();
// Überprüfen, ob der Benutzer ein Admin ist
if (!isAdmin(userId)) {
bot.sendMessage(chatId, '🚫 Nur Admins dürfen diesen Befehl verwenden.');
return;
}
// Urlaubseintrag speichern
vacationData[userId] = {
vacationInfo: vacationInfo,
date: new Date().toLocaleString()
};
// Benutzer über den Urlaub informieren
bot.sendMessage(chatId, `✅ Du hast deinen Urlaub eingetragen: "${vacationInfo}".`);
// Alle Benutzer über den Urlaub informieren
const message = `🔔 Hinweis: Admin ${msg.from.username || `${msg.from.first_name} ${msg.from.last_name}`} ist im Urlaub: "${vacationInfo}".`;
bot.sendMessage(chatId, message);
});
// Befehl zum Melden von Nachrichten // Befehl zum Melden von Nachrichten
bot.onText(/\/report/, (msg) => { bot.onText(/\/report/, (msg) => {
const chatId = msg.chat.id; const chatId = msg.chat.id;
@ -203,7 +232,7 @@ bot.onText(/\/report/, (msg) => {
bot.onText(/\/documentation/, (msg) => { bot.onText(/\/documentation/, (msg) => {
const chatId = msg.chat.id; const chatId = msg.chat.id;
const documentationUrl = 'https://deine-dokumentation-url.com'; // Ersetze dies durch die tatsächliche URL const documentationUrl = 'https://git.viper.ipv64.net/M_Viper/support_bot_2024/src/branch/main/README.md'; // Ersetze dies durch die tatsächliche URL
bot.sendMessage(chatId, 'Hier findest du die technische Dokumentation:', { bot.sendMessage(chatId, 'Hier findest du die technische Dokumentation:', {
reply_markup: { reply_markup: {
@ -450,6 +479,35 @@ function saveInviteLinks() {
// Objekt zur Speicherung von Einladungslinks (wird aus der Datei geladen) // Objekt zur Speicherung von Einladungslinks (wird aus der Datei geladen)
let inviteLinks = loadInviteLinks(); let inviteLinks = loadInviteLinks();
// Funktion zum Hinzufügen eines Eintrags zum Log
const logUserJoin = (userId, username, inviteLink) => {
const logEntry = {
userId: userId,
username: username,
inviteLink: inviteLink,
timestamp: new Date().toISOString()
};
// Log-Datei lesen und Eintrag hinzufügen
fs.readFile(logFilePath, (err, data) => {
let logData = [];
if (!err) {
logData = JSON.parse(data);
}
logData.push(logEntry);
// Log-Datei speichern
fs.writeFile(logFilePath, JSON.stringify(logData, null, 2), (err) => {
if (err) {
console.error('Fehler beim Schreiben in die Log-Datei:', err);
} else {
console.log('Log-Eintrag erfolgreich hinzugefügt:', logEntry);
}
});
});
};
// /einladung-Befehl für alle Benutzer // /einladung-Befehl für alle Benutzer
bot.onText(/\/einladung/, (msg) => { bot.onText(/\/einladung/, (msg) => {
const chatId = msg.chat.id; const chatId = msg.chat.id;
@ -494,6 +552,20 @@ bot.onText(/\/einladung/, (msg) => {
}); });
}); });
// Beispiel: Handle den Beitritt eines Benutzers über einen Einladungslink
bot.on('new_chat_members', (msg) => {
msg.new_chat_members.forEach(async (member) => {
const userId = member.id;
const username = member.username || 'unbekannt';
// Hier den Einladungslink abfragen (z.B. aus einer Datenbank oder durch andere Mittel)
const inviteLink = inviteLinks[member.invite_link.id] ? inviteLinks[member.invite_link.id].link : 'unbekannt';
// Log den Beitritt
logUserJoin(userId, username, inviteLink);
});
});
// Befehl zum Löschen der letzten n Nachrichten // Befehl zum Löschen der letzten n Nachrichten
bot.onText(/\/clear (\d+)/, async (msg, match) => { bot.onText(/\/clear (\d+)/, async (msg, match) => {
const chatId = msg.chat.id; const chatId = msg.chat.id;
@ -981,7 +1053,7 @@ bot.onText(/\/info/, (msg) => {
// Hier die Bot-Informationen eintragen // Hier die Bot-Informationen eintragen
const botName = 'Support Bot'; // Ersetze dies durch den tatsächlichen Bot-Namen const botName = 'Support Bot'; // Ersetze dies durch den tatsächlichen Bot-Namen
const botVersion = '1.5.9'; // Ersetze dies durch die tatsächliche Version const botVersion = '1.6.0'; // Ersetze dies durch die tatsächliche Version
const botAuthor = 'M_Viper'; // Ersetze dies durch den tatsächlichen Autor const botAuthor = 'M_Viper'; // Ersetze dies durch den tatsächlichen Autor
const botLicense = 'MIT'; // Ersetze dies durch die tatsächliche Lizenz const botLicense = 'MIT'; // Ersetze dies durch die tatsächliche Lizenz