bot.js aktualisiert
This commit is contained in:
parent
11c2cab1c3
commit
9285725d1e
193
bot.js
193
bot.js
|
@ -271,6 +271,120 @@ function logError(error) {
|
||||||
fs.appendFileSync(ERROR_LOG_PATH, errorMessage);
|
fs.appendFileSync(ERROR_LOG_PATH, errorMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const faqFilePath = path.join(__dirname, 'faq.json'); // Pfad zur faq.json im Hauptverzeichnis
|
||||||
|
const authorizedUsers = [USER1_ID, USER2_ID];
|
||||||
|
|
||||||
|
// Funktion zum Laden der FAQs
|
||||||
|
function loadFaqs() {
|
||||||
|
if (!fs.existsSync(faqFilePath)) {
|
||||||
|
fs.writeFileSync(faqFilePath, JSON.stringify([])); // Leere Datei erstellen, wenn sie nicht existiert
|
||||||
|
}
|
||||||
|
const faqs = JSON.parse(fs.readFileSync(faqFilePath));
|
||||||
|
return faqs;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Funktion zum Speichern der FAQs
|
||||||
|
function saveFaqs(faqs) {
|
||||||
|
fs.writeFileSync(faqFilePath, JSON.stringify(faqs, null, 2));
|
||||||
|
}
|
||||||
|
|
||||||
|
// /faq Befehl: Zeigt alle FAQs an
|
||||||
|
bot.onText(/\/faq/, (msg) => {
|
||||||
|
const chatId = msg.chat.id;
|
||||||
|
const faqs = loadFaqs();
|
||||||
|
|
||||||
|
if (faqs.length === 0) {
|
||||||
|
bot.sendMessage(chatId, 'Es gibt derzeit keine FAQs.');
|
||||||
|
} else {
|
||||||
|
let response = 'Häufig gestellte Fragen:\n\n';
|
||||||
|
faqs.forEach((faq, index) => {
|
||||||
|
response += `${index + 1}. *${faq.question}*\n${faq.answer}\n\n`;
|
||||||
|
});
|
||||||
|
bot.sendMessage(chatId, response, { parse_mode: 'Markdown' });
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// /add_faq Befehl: Interaktives Hinzufügen einer neuen FAQ (nur für autorisierte Benutzer)
|
||||||
|
bot.onText(/\/add_faq/, (msg) => {
|
||||||
|
const chatId = msg.chat.id;
|
||||||
|
const userId = msg.from.id.toString();
|
||||||
|
|
||||||
|
if (!authorizedUsers.includes(userId)) {
|
||||||
|
bot.sendMessage(chatId, '❌ Du bist nicht autorisiert, diesen Befehl auszuführen.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Frage nach der FAQ-Frage
|
||||||
|
bot.sendMessage(chatId, 'Bitte gib die FAQ-Frage ein:', {
|
||||||
|
reply_markup: { force_reply: true }
|
||||||
|
}).then(sentMessage => {
|
||||||
|
bot.onReplyToMessage(sentMessage.chat.id, sentMessage.message_id, (reply) => {
|
||||||
|
const question = reply.text;
|
||||||
|
|
||||||
|
// Frage nach der FAQ-Antwort
|
||||||
|
bot.sendMessage(chatId, 'Bitte gib die Antwort auf die Frage ein:', {
|
||||||
|
reply_markup: { force_reply: true }
|
||||||
|
}).then(sentMessage => {
|
||||||
|
bot.onReplyToMessage(sentMessage.chat.id, sentMessage.message_id, (reply) => {
|
||||||
|
const answer = reply.text;
|
||||||
|
|
||||||
|
// FAQ speichern
|
||||||
|
const faqs = loadFaqs();
|
||||||
|
faqs.push({ question, answer });
|
||||||
|
saveFaqs(faqs);
|
||||||
|
|
||||||
|
bot.sendMessage(chatId, '✅ FAQ erfolgreich hinzugefügt.');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// /del_faq Befehl: Interaktives Entfernen einer FAQ (nur für autorisierte Benutzer)
|
||||||
|
bot.onText(/\/del_faq/, (msg) => {
|
||||||
|
const chatId = msg.chat.id;
|
||||||
|
const userId = msg.from.id.toString();
|
||||||
|
|
||||||
|
if (!authorizedUsers.includes(userId)) {
|
||||||
|
bot.sendMessage(chatId, '❌ Du bist nicht autorisiert, diesen Befehl auszuführen.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const faqs = loadFaqs();
|
||||||
|
|
||||||
|
if (faqs.length === 0) {
|
||||||
|
bot.sendMessage(chatId, 'Es gibt derzeit keine FAQs zum Löschen.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Liste der FAQs anzeigen und um Eingabe der Nummer bitten
|
||||||
|
let response = 'Welche FAQ möchtest du löschen?\n\n';
|
||||||
|
faqs.forEach((faq, index) => {
|
||||||
|
response += `${index + 1}. *${faq.question}*\n${faq.answer}\n\n`;
|
||||||
|
});
|
||||||
|
|
||||||
|
bot.sendMessage(chatId, response, {
|
||||||
|
parse_mode: 'Markdown',
|
||||||
|
reply_markup: { force_reply: true }
|
||||||
|
}).then(sentMessage => {
|
||||||
|
bot.onReplyToMessage(sentMessage.chat.id, sentMessage.message_id, (reply) => {
|
||||||
|
const faqIndex = parseInt(reply.text, 10) - 1;
|
||||||
|
|
||||||
|
if (isNaN(faqIndex) || faqIndex < 0 || faqIndex >= faqs.length) {
|
||||||
|
bot.sendMessage(chatId, '❌ Ungültige Auswahl.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// FAQ löschen
|
||||||
|
faqs.splice(faqIndex, 1);
|
||||||
|
saveFaqs(faqs);
|
||||||
|
|
||||||
|
bot.sendMessage(chatId, '✅ FAQ erfolgreich gelöscht.');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
// Handler für den /admin-Befehl
|
// Handler für den /admin-Befehl
|
||||||
bot.onText(/\/admin/, (msg) => {
|
bot.onText(/\/admin/, (msg) => {
|
||||||
const chatId = msg.chat.id;
|
const chatId = msg.chat.id;
|
||||||
|
@ -531,7 +645,7 @@ bot.on('message', async (msg) => {
|
||||||
console.log('Sende Nachricht an Entwickler-Chat-ID:', DEV_CHAT_ID); // Debugging-Ausgabe
|
console.log('Sende Nachricht an Entwickler-Chat-ID:', DEV_CHAT_ID); // Debugging-Ausgabe
|
||||||
await bot.sendMessage(DEV_CHAT_ID, devMessage, { parse_mode: 'Markdown' });
|
await bot.sendMessage(DEV_CHAT_ID, devMessage, { parse_mode: 'Markdown' });
|
||||||
console.log('Nachricht erfolgreich gesendet.');
|
console.log('Nachricht erfolgreich gesendet.');
|
||||||
bot.sendMessage(chatId, '✅ Ihre Nachricht wurde erfolgreich gesendet! Vielen Dank für Ihr Feedback.');
|
bot.sendMessage(chatId, '✅ Ihre Nachricht wurde erfolgreich gesendet! Vielen Dank.');
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Fehler beim Senden der Nachricht:', error);
|
console.error('Fehler beim Senden der Nachricht:', error);
|
||||||
bot.sendMessage(chatId, '🚫 Etwas ist schiefgelaufen. Ihre Nachricht konnte nicht gesendet werden.');
|
bot.sendMessage(chatId, '🚫 Etwas ist schiefgelaufen. Ihre Nachricht konnte nicht gesendet werden.');
|
||||||
|
@ -1326,15 +1440,6 @@ function getTypeKeyboard() {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Funktion zum Senden des Wunsches an zwei Benutzer
|
// Funktion zum Senden des Wunsches an zwei Benutzer
|
||||||
async function sendWish(wish, type, chatId) {
|
async function sendWish(wish, type, chatId) {
|
||||||
const message = `✨ **Achtung!** ✨\n\nEin neuer Wunsch ist eingegangen:\n\n🔹 **Typ:** ${type}\n\n🔹 **Titel:**\n${wish}`;
|
const message = `✨ **Achtung!** ✨\n\nEin neuer Wunsch ist eingegangen:\n\n🔹 **Typ:** ${type}\n\n🔹 **Titel:**\n${wish}`;
|
||||||
|
@ -1978,10 +2083,10 @@ bot.onText(/\/f_log/, (msg) => {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Funktion zum Erstellen der Hilfennachricht
|
|
||||||
function createHelpMessage(chatId) {
|
// Funktion zum Erstellen der allgemeinen Hilfennachricht
|
||||||
// Basis-Hilfe-Nachricht für alle Benutzer
|
function createHelpMessage() {
|
||||||
let helpMessage = `📜 *Hier ist eine Liste der verfügbaren Befehle:*\n\n` +
|
return `📜 *Hier ist eine Liste der verfügbaren Befehle:*\n\n` +
|
||||||
`👋 /start - Registriert deinen Zugang.\n\n` +
|
`👋 /start - Registriert deinen Zugang.\n\n` +
|
||||||
`🔔 /notification\\_on - Aktiviert Benachrichtigungen für neue Filme.\n\n` +
|
`🔔 /notification\\_on - Aktiviert Benachrichtigungen für neue Filme.\n\n` +
|
||||||
`🔕 /notification\\_off - Deaktiviert Benachrichtigungen für neue Filme.\n\n` +
|
`🔕 /notification\\_off - Deaktiviert Benachrichtigungen für neue Filme.\n\n` +
|
||||||
|
@ -1995,44 +2100,56 @@ function createHelpMessage(chatId) {
|
||||||
`💭 /wunsch - Nutze diesen Befehl, um einen Filmwunsch zu äußern.\n\n` +
|
`💭 /wunsch - Nutze diesen Befehl, um einen Filmwunsch zu äußern.\n\n` +
|
||||||
`🔝 /empfehlung - Film Empfehlung des Tages.\n\n` +
|
`🔝 /empfehlung - Film Empfehlung des Tages.\n\n` +
|
||||||
`💬 /feedback - Gib Feedback zum Bot.\n\n` +
|
`💬 /feedback - Gib Feedback zum Bot.\n\n` +
|
||||||
`🔧 /dev - Funktionswunsch oder Bug melden. \n\n` +
|
`🔧 /dev - Funktionswunsch oder Bug melden.\n\n` +
|
||||||
`❓ /help - Zeigt diese Hilfennachricht an. \n\n\n`;
|
`❓ /faq - Zeigt eine Liste der häufig gestellten Fragen an.\n\n` +
|
||||||
|
`❓ /help - Zeigt diese Hilfennachricht an.\n\n`;
|
||||||
|
}
|
||||||
|
|
||||||
const additionalCommands = `*👨💻 Admin Befehle* \n\n` +
|
// Funktion zum Erstellen der Admin-Hilfennachricht
|
||||||
|
function createAdminHelpMessage() {
|
||||||
|
return `*👨💻 Admin Befehle* \n\n` +
|
||||||
`🤖 /bot - Zeigt Informationen über den Bot.\n\n` +
|
`🤖 /bot - Zeigt Informationen über den Bot.\n\n` +
|
||||||
`🛠️ /admin - sendet eine Nachricht an alle Nutzer.\n\n` +
|
`🛠️ /admin - sendet eine Nachricht an alle Nutzer.\n\n` +
|
||||||
`👤 /user - Zeigt Benutzerinformationen an.\n\n` +
|
`👤 /user - Zeigt Benutzerinformationen an.\n\n` +
|
||||||
`📝 /logs - Zeigt die letzten Fehlermeldungen an.\n\n` +
|
`📝 /logs - Zeigt die letzten Fehlermeldungen an.\n\n` +
|
||||||
`🗑️ /log\\_delete - Löscht Logs.\n\n` +
|
`🗑️ /log\\_delete - Löscht Logs.\n\n` +
|
||||||
`📝 /f\\_log - Sendet die Feedback als .txt-Datei.`;
|
`📝 /f\\_log - Sendet die Feedback als .txt-Datei.\n\n` +
|
||||||
|
`❓ /add\\_faq - Fügt eine neue Frage zur FAQ hinzu.\n\n` +
|
||||||
|
`🗑️ /del\\_faq - Löscht eine FAQ.\n\n`;
|
||||||
// Debug-Ausgaben zur Überprüfung
|
|
||||||
console.log(`Received chatId: ${chatId}`);
|
|
||||||
console.log(`Configured USER1_ID: ${USER1_ID}`);
|
|
||||||
console.log(`Configured USER2_ID: ${USER2_ID}`);
|
|
||||||
|
|
||||||
// Nur Benutzer in der .env-Datei erhalten die zusätzlichen Befehle
|
|
||||||
if (chatId.toString() === USER1_ID || chatId.toString() === USER2_ID) {
|
|
||||||
helpMessage += additionalCommands;
|
|
||||||
}
|
|
||||||
|
|
||||||
return helpMessage;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// /help-Befehl verarbeiten
|
// /help-Befehl verarbeiten
|
||||||
bot.onText(/\/help/, (msg) => {
|
bot.onText(/\/help/, (msg) => {
|
||||||
const chatId = msg.chat.id;
|
const chatId = msg.chat.id;
|
||||||
|
const helpMessage = createHelpMessage();
|
||||||
|
|
||||||
const helpMessage = createHelpMessage(chatId);
|
bot.sendMessage(chatId, helpMessage, { parse_mode: 'Markdown' }).catch(error => {
|
||||||
|
console.log(`Error sending help message to chatId ${chatId}: ${error.message}`);
|
||||||
|
});
|
||||||
|
|
||||||
bot.sendMessage(chatId, helpMessage, { parse_mode: 'Markdown' }).catch(error => {
|
console.log(`Sent help message to chatId ${chatId}`);
|
||||||
logError(`Error sending help message to chatId ${chatId}: ${error.message}`);
|
|
||||||
});
|
|
||||||
|
|
||||||
logMessage(`Sent help message to chatId ${chatId}`);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// /admin_help-Befehl verarbeiten
|
||||||
|
bot.onText(/\/a_help/, (msg) => {
|
||||||
|
const chatId = msg.chat.id;
|
||||||
|
|
||||||
|
// Überprüfung, ob der Benutzer berechtigt ist
|
||||||
|
if (chatId.toString() === process.env.USER1_ID || chatId.toString() === process.env.USER2_ID) {
|
||||||
|
const adminHelpMessage = createAdminHelpMessage();
|
||||||
|
bot.sendMessage(chatId, adminHelpMessage, { parse_mode: 'Markdown' }).catch(error => {
|
||||||
|
console.log(`Error sending admin help message to chatId ${chatId}: ${error.message}`);
|
||||||
|
});
|
||||||
|
|
||||||
|
console.log(`Sent admin help message to chatId ${chatId}`);
|
||||||
|
} else {
|
||||||
|
bot.sendMessage(chatId, "Du hast keine Berechtigung, diesen Befehl zu verwenden.", { parse_mode: 'Markdown' }).catch(error => {
|
||||||
|
console.log(`Error sending unauthorized message to chatId ${chatId}: ${error.message}`);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Funktion zum Abrufen der letzten 10 hinzugefügten Filme
|
// Funktion zum Abrufen der letzten 10 hinzugefügten Filme
|
||||||
async function fetchLatest10Movies() {
|
async function fetchLatest10Movies() {
|
||||||
|
|
Loading…
Reference in New Issue