plex-bot.js aktualisiert

This commit is contained in:
M_Viper 2024-10-18 23:49:19 +00:00
parent e82f592bdd
commit b988fa6b72
1 changed files with 116 additions and 54 deletions

View File

@ -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}`);