diff --git a/plex-bot.js b/plex-bot.js index 74a6923..933e059 100644 --- a/plex-bot.js +++ b/plex-bot.js @@ -295,6 +295,7 @@ function saveFaqs(faqs) { fs.writeFileSync(faqFilePath, JSON.stringify(faqs, null, 2)); } + // Befehl zum Abrufen von Trailern bot.onText(/\/trailer/, (msg) => { const chatId = msg.chat.id; @@ -1947,71 +1948,113 @@ bot.onText(/\/passwd/, (msg) => { // Logik für den Befehl... }); + + + + + + + + + + + + + + + +const userId1 = Number(process.env.USER1_ID); // USER1_ID aus .env laden und in Zahl umwandeln +const userId2 = Number(process.env.USER2_ID); // USER2_ID aus .env laden und in Zahl umwandeln + bot.onText(/\/support/, (msg) => { - const chatId = msg.chat.id; + const chatId = msg.chat.id; - // Direkt die Telegram-ID verwenden - const adminId = 5507179337; + // Direkt die Telegram-ID verwenden + const adminId = 5507179337; - if (msg.from.id !== adminId) { - return bot.sendMessage(chatId, "🚫 Dieser Befehl ist nur für Administratoren zugänglich."); - } + // Überprüfen, ob die Benutzer-ID in den autorisierten IDs enthalten ist + if (msg.from.id !== userId1 && msg.from.id !== userId2) { + return bot.sendMessage(chatId, "🚫 Dieser Befehl ist nur für autorisierte Benutzer zugänglich."); + } - bot.sendMessage(chatId, "💬 Bitte gib zusätzliche Informationen für den Support an:"); + bot.sendMessage(chatId, "💬 Bitte gib zusätzliche Informationen für den Support an:"); - // Setze einen Listener für die nächste Nachricht des Admins - bot.once('message', async (reply) => { - const additionalText = reply.text || "Keine zusätzlichen Informationen bereitgestellt."; - const filesToZip = [ - 'error.log', - 'command_history.json', - 'user.yml', - 'subscribers.json', - ]; - const logFolder = 'Log'; + // Setze einen Listener für die nächste Nachricht des Benutzers + bot.once('message', async (reply) => { + const additionalText = reply.text || "Keine zusätzlichen Informationen bereitgestellt."; + const filesToZip = [ + 'error.log', + 'command_history.json', + 'user.yml', + 'subscribers.json', + ]; + const logFolder = 'Log'; - const zipPath = 'support.zip'; - const output = fs.createWriteStream(zipPath); - const archive = archiver('zip'); + const zipPath = 'support.zip'; + const output = fs.createWriteStream(zipPath); + const archive = archiver('zip'); - output.on('close', async () => { - const botName = process.env.BOT_NAME || "Unbekannter Bot"; // Bot-Namen aus der .env - const adminNames = `${process.env.USER1_ID}, ${process.env.USER2_ID}`; // Namen der Administratoren + output.on('close', async () => { + const botName = process.env.BOT_NAME || "Unbekannter Bot"; // Bot-Namen aus der .env + const adminNames = `${userId1}, ${userId2}`; // Namen der Administratoren - const supportMessage = `🛠️ *Externe Support-Anfrage* \n\n\n` + - `🔧 Bot-Name: @${botName}\n\n` + - `👨‍💻 Administratoren:\n ${adminNames}\n\n\n` + - `💬 Zusätzliche Informationen:\n\n ${additionalText}`; + const supportMessage = `🛠️ *Externe Support-Anfrage* \n\n\n` + + `🔧 Bot-Name: @${botName}\n\n` + + `👨‍💻 Administratoren:\n ${adminNames}\n\n\n` + + `💬 Zusätzliche Informationen:\n\n ${additionalText}`; - await bot.sendMessage(adminId, supportMessage, { parse_mode: 'Markdown' }); - await bot.sendDocument(adminId, zipPath); - fs.unlinkSync(zipPath); // Löscht die ZIP-Datei nach dem Senden - }); + await bot.sendMessage(adminId, supportMessage, { parse_mode: 'Markdown' }); + await bot.sendDocument(adminId, zipPath); + fs.unlinkSync(zipPath); // Löscht die ZIP-Datei nach dem Senden + }); - archive.on('error', (err) => { - throw err; - }); + archive.on('error', (err) => { + throw err; + }); - archive.pipe(output); + archive.pipe(output); - // Füge die Dateien zum ZIP-Archiv hinzu - filesToZip.forEach((file) => { - if (fs.existsSync(file)) { - archive.file(file, { name: file }); - } else { - console.warn(`Datei ${file} nicht gefunden.`); - } - }); + // Füge die Dateien zum ZIP-Archiv hinzu + filesToZip.forEach((file) => { + if (fs.existsSync(file)) { + archive.file(file, { name: file }); + } else { + console.warn(`Datei ${file} nicht gefunden.`); + } + }); - // Füge den Log-Ordner hinzu - if (fs.existsSync(logFolder)) { - archive.directory(logFolder + '/', logFolder + '/'); - } + // Füge den Log-Ordner hinzu + if (fs.existsSync(logFolder)) { + archive.directory(logFolder + '/', logFolder + '/'); + } - await archive.finalize(); // Warte, bis das Archiv abgeschlossen ist - }); + await archive.finalize(); // Warte, bis das Archiv abgeschlossen ist + }); }); + + + + + + + + + + + + + + + + + + + + + + + // Handler für den /admin-Befehl bot.onText(/\/admin/, (msg) => { const chatId = msg.chat.id; @@ -2166,7 +2209,7 @@ bot.on('callback_query', async (query) => { if (!isNaN(seriesNumber) && seriesNumber > 0 && seriesNumber <= series.length) { const seriesInfo = series[seriesNumber - 1]; const { title, summary, thumb, addedAt } = seriesInfo; - const imageUrl = `https://plex.viper-918.myds.me${thumb}?X-Plex-Token=Pk5PySz_imbA3y24yDei`; // Beispiel-URL anpassen + const imageUrl = `${PLEX_DOMAIN}${thumb}?X-Plex-Token=${PLEX_TOKEN}`; // Beispiel-URL anpassen // Debugging-Ausgabe console.log(`Image URL: ${imageUrl}`); @@ -2740,14 +2783,14 @@ Um sie zu deaktivieren, tippe 👉 /notification_off. 👤 Möchtest du dein Profil sehen? Tippe 👉 /profil.`; - // Inline-Button zu einer Webadresse + // Inline-Button zu einer Webadresse, basierend auf der Umgebungsvariable const options = { reply_markup: { inline_keyboard: [ [ { text: 'zur Web Oberfläche', - url: 'https://plex.viper.ipv64.net/' + url: process.env.PANEL_LINK // Verwendung der PANEL_LINK-Umgebungsvariable } ] ] @@ -4581,6 +4624,11 @@ app.get('/api/bot-version', (req, res) => { res.json({ version: process.env.BOT_VERSION }); }); +// API-Route, die den Wert von WEB_NAME bereitstellt +app.get('/api/web-name', (req, res) => { + res.json({ name: process.env.WEB_NAME }); +}); + // Inline-Knopf-Ereignis für Film auswählen verarbeiten bot.on('callback_query', async (callbackQuery) => { const chatId = callbackQuery.message.chat.id; @@ -5194,10 +5242,24 @@ function sendToTelegram(report) { - - // Ende Frontend + + + + + + + + + + + + + + + + /// Definition der logDebug-Funktion function logDebug(message) { console.log(`${new Date().toISOString()} - DEBUG: ${message}`);