bot.js aktualisiert
This commit is contained in:
parent
11c2cab1c3
commit
9285725d1e
187
bot.js
187
bot.js
|
@ -271,6 +271,120 @@ function logError(error) {
|
|||
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
|
||||
bot.onText(/\/admin/, (msg) => {
|
||||
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
|
||||
await bot.sendMessage(DEV_CHAT_ID, devMessage, { parse_mode: 'Markdown' });
|
||||
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) {
|
||||
console.error('Fehler beim Senden der Nachricht:', error);
|
||||
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
|
||||
async function sendWish(wish, type, chatId) {
|
||||
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) {
|
||||
// Basis-Hilfe-Nachricht für alle Benutzer
|
||||
let helpMessage = `📜 *Hier ist eine Liste der verfügbaren Befehle:*\n\n` +
|
||||
|
||||
// Funktion zum Erstellen der allgemeinen Hilfennachricht
|
||||
function createHelpMessage() {
|
||||
return `📜 *Hier ist eine Liste der verfügbaren Befehle:*\n\n` +
|
||||
`👋 /start - Registriert deinen Zugang.\n\n` +
|
||||
`🔔 /notification\\_on - Aktiviert 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` +
|
||||
`🔝 /empfehlung - Film Empfehlung des Tages.\n\n` +
|
||||
`💬 /feedback - Gib Feedback zum Bot.\n\n` +
|
||||
`🔧 /dev - Funktionswunsch oder Bug melden. \n\n` +
|
||||
`❓ /help - Zeigt diese Hilfennachricht an. \n\n\n`;
|
||||
`🔧 /dev - Funktionswunsch oder Bug melden.\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` +
|
||||
`🛠️ /admin - sendet eine Nachricht an alle Nutzer.\n\n` +
|
||||
`👤 /user - Zeigt Benutzerinformationen an.\n\n` +
|
||||
`📝 /logs - Zeigt die letzten Fehlermeldungen an.\n\n` +
|
||||
`🗑️ /log\\_delete - Löscht Logs.\n\n` +
|
||||
`📝 /f\\_log - Sendet die Feedback als .txt-Datei.`;
|
||||
|
||||
|
||||
// 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;
|
||||
`📝 /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`;
|
||||
}
|
||||
|
||||
// /help-Befehl verarbeiten
|
||||
bot.onText(/\/help/, (msg) => {
|
||||
const chatId = msg.chat.id;
|
||||
|
||||
const helpMessage = createHelpMessage(chatId);
|
||||
const helpMessage = createHelpMessage();
|
||||
|
||||
bot.sendMessage(chatId, helpMessage, { parse_mode: 'Markdown' }).catch(error => {
|
||||
logError(`Error sending help message to chatId ${chatId}: ${error.message}`);
|
||||
console.log(`Error sending help message to chatId ${chatId}: ${error.message}`);
|
||||
});
|
||||
|
||||
logMessage(`Sent help message to chatId ${chatId}`);
|
||||
console.log(`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
|
||||
async function fetchLatest10Movies() {
|
||||
|
|
Loading…
Reference in New Issue