support_bot.js aktualisiert

This commit is contained in:
M_Viper 2024-01-11 13:49:14 +01:00
parent 63e56a8186
commit 187f11bf01
1 changed files with 380 additions and 401 deletions

View File

@ -1,401 +1,380 @@
const TelegramBot = require('node-telegram-bot-api'); const TelegramBot = require('node-telegram-bot-api');
const nodemailer = require('nodemailer'); const nodemailer = require('nodemailer');
const fs = require('fs').promises; const fs = require('fs').promises;
const yaml = require('js-yaml'); const yaml = require('js-yaml');
const path = require('path'); const path = require('path');
require('dotenv').config(); require('dotenv').config();
const emailConfig = { const emailConfig = {
user: process.env.EMAIL_USER, user: process.env.EMAIL_USER,
pass: process.env.EMAIL_PASS, pass: process.env.EMAIL_PASS,
recipient: process.env.EMAIL_RECIPIENT, recipient: process.env.EMAIL_RECIPIENT,
}; };
const botToken = process.env.BOT_TOKEN; const botToken = process.env.BOT_TOKEN;
const botInfo = { const botInfo = {
name: 'Telegram Support Bot', name: 'Telegram Support Bot',
version: '1.0.0', version: '1.0.0',
author: 'M_Viper', author: 'M_Viper',
license: 'ISC', license: 'ISC',
}; };
const bot = new TelegramBot(botToken, { polling: true }); const bot = new TelegramBot(botToken, { polling: true });
const ticketCreationStatus = new Map(); const ticketCreationStatus = new Map();
const logoPath = path.join(__dirname, 'logo.png'); // Setze den korrekten Pfad zu deinem Logo const logoPath = path.join(__dirname, 'logo.png'); // Setze den korrekten Pfad zu deinem Logo
async function loadFromYaml(filePath) { async function loadFromYaml(filePath) {
try { try {
const fileContents = await fs.readFile(filePath, 'utf-8'); const fileContents = await fs.readFile(filePath, 'utf-8');
return yaml.load(fileContents); return yaml.load(fileContents);
} catch (error) { } catch (error) {
console.error(`Fehler beim Laden der YAML-Datei für ${path.basename(filePath)}:`, error); console.error(`Fehler beim Laden der YAML-Datei für ${path.basename(filePath)}:`, error);
return []; return [];
} }
} }
async function loadLinks() { async function loadLinks() {
const linksDataPath = path.join(__dirname, 'links.yml'); const linksDataPath = path.join(__dirname, 'links.yml');
return await loadFromYaml(linksDataPath); return await loadFromYaml(linksDataPath);
} }
async function loadTeam() { async function loadTeam() {
const teamDataPath = path.join(__dirname, 'team.json'); const teamDataPath = path.join(__dirname, 'team.json');
return await loadFromYaml(teamDataPath); return await loadFromYaml(teamDataPath);
} }
async function loadFragen() { async function loadFragen() {
const fragenDataPath = path.join(__dirname, 'fragen.yml'); const fragenDataPath = path.join(__dirname, 'fragen.yml');
return await loadFromYaml(fragenDataPath); return await loadFromYaml(fragenDataPath);
} }
function sendWelcomeMessage(chatId) { function sendWelcomeMessage(chatId) {
const welcomeMessage = ` const welcomeMessage = `
**Willkommen beim Support!** **Willkommen beim Support!**
Herzlich willkommen! Wir schätzen es, dass Sie sich für unseren Support entschieden haben. Unser oberstes Ziel ist es, Ihnen bestmöglich zu helfen und Ihre Anliegen so schnell wie möglich zu klären. Wenn Sie Unterstützung benötigen, haben Sie verschiedene Möglichkeiten: Herzlich willkommen! Wir schätzen es, dass Sie sich für unseren Support entschieden haben. Unser oberstes Ziel ist es, Ihnen bestmöglich zu helfen und Ihre Anliegen so schnell wie möglich zu klären. Wenn Sie Unterstützung benötigen, haben Sie verschiedene Möglichkeiten:
- Um unser Menü anzuzeigen, geben Sie einfach "/menu" ein. - Um unser Menü anzuzeigen, geben Sie einfach "/menu" ein.
- Sollte Ihre Frage nicht beantwortet werden, können Sie ganz einfach ein Ticket erstellen, um spezifische Unterstützung zu erhalten. - Sollte Ihre Frage nicht beantwortet werden, können Sie ganz einfach ein Ticket erstellen, um spezifische Unterstützung zu erhalten.
Wir stehen Ihnen zur Verfügung und sind hier, um Ihre Anfragen zu bearbeiten. Bitte geben Sie uns so viele Details wie möglich, damit wir Ihnen effektiv helfen können. Wir stehen Ihnen zur Verfügung und sind hier, um Ihre Anfragen zu bearbeiten. Bitte geben Sie uns so viele Details wie möglich, damit wir Ihnen effektiv helfen können.
Vielen Dank für Ihr Vertrauen. Vielen Dank für Ihr Vertrauen.
Herzliche Grüße, Herzliche Grüße,
Das Support-Team Das Support-Team
`; `;
bot.sendMessage(chatId, welcomeMessage, { parse_mode: 'Markdown' }); bot.sendMessage(chatId, welcomeMessage, { parse_mode: 'Markdown' });
} }
async function initializeBot() { async function initializeBot() {
const linksData = await loadLinks(); const linksData = await loadLinks();
const teamData = await loadTeam(); const teamData = await loadTeam();
const fragenData = await loadFragen(); const fragenData = await loadFragen();
// Hinzugefügter Abschnitt für den /info-Befehl // Hinzugefügter Abschnitt für den /info-Befehl
bot.onText(/\/info/, (msg) => { bot.onText(/\/info/, (msg) => {
const chatId = msg.chat.id; const chatId = msg.chat.id;
console.log('Info-Befehl empfangen:', msg.text); console.log('Info-Befehl empfangen:', msg.text);
showBotInfo(chatId); showBotInfo(chatId);
}); });
// Hinzugefügter Abschnitt für den /logo-Befehl // Hinzugefügter Abschnitt für den /logo-Befehl
bot.onText(/\/logo/, (msg) => { bot.onText(/\/logo/, (msg) => {
const chatId = msg.chat.id; const chatId = msg.chat.id;
bot.sendPhoto(chatId, logoPath, { caption: 'Hier ist unser Logo!' }) bot.sendPhoto(chatId, logoPath, { caption: 'Hier ist unser Logo!' })
.then(() => { .then(() => {
console.log('Logo erfolgreich gesendet.'); console.log('Logo erfolgreich gesendet.');
}) })
.catch((error) => { .catch((error) => {
console.error('Fehler beim Senden des Logos:', error); console.error('Fehler beim Senden des Logos:', error);
}); });
}); });
bot.on('message', async (msg) => { bot.on('message', async (msg) => {
const chatId = msg.chat.id; const chatId = msg.chat.id;
if (msg.text === '/menu') { if (msg.text === '/menu') {
handleMainMenu(msg, chatId, linksData, fragenData); handleMainMenu(msg, chatId, linksData, fragenData);
return; return;
} }
if (msg.text && msg.text.toLowerCase() === '/info') { if (msg.text && msg.text.toLowerCase() === '/info') {
// /info wird nun auch über onText abgefangen // /info wird nun auch über onText abgefangen
return; return;
} }
if (ticketCreationStatus.has(chatId)) { if (ticketCreationStatus.has(chatId)) {
handleTicketCreation(msg, chatId, linksData); handleTicketCreation(msg, chatId, linksData);
return; return;
} }
sendWelcomeMessage(chatId); sendWelcomeMessage(chatId);
}); });
bot.on('callback_query', (callbackQuery) => { bot.on('callback_query', (callbackQuery) => {
const chatId = callbackQuery.message.chat.id; const chatId = callbackQuery.message.chat.id;
const action = callbackQuery.data; const action = callbackQuery.data;
if (action === 'create_ticket') { if (action === 'create_ticket') {
ticketCreationStatus.set(chatId, { step: 'waiting_for_name' }); ticketCreationStatus.set(chatId, { step: 'waiting_for_name' });
bot.sendMessage(chatId, 'Um ein Ticket zu erstellen, gib bitte deinen Namen ein:') bot.sendMessage(chatId, 'Um ein Ticket zu erstellen, gib bitte deinen Namen ein:')
.catch((error) => { .catch((error) => {
console.error('Fehler beim Senden der Aufforderung für den Namen:', error); console.error('Fehler beim Senden der Aufforderung für den Namen:', error);
}); });
} else if (action === 'links') { } else if (action === 'links') {
showLinksMenu(chatId, linksData); showLinksMenu(chatId, linksData);
} else if (action.startsWith('links_')) { } else if (action.startsWith('links_')) {
const category = action.replace('links_', ''); const category = action.replace('links_', '');
showLinksInCategory(chatId, category, linksData); showLinksInCategory(chatId, category, linksData);
} else if (action === 'team') { } else if (action === 'team') {
showTeam(chatId, teamData); showTeam(chatId, teamData);
} else if (action === 'fragen') { } else if (action === 'fragen') {
handleFragen(chatId, fragenData); handleFragen(chatId, fragenData);
} else if (action.startsWith('fragen_')) { } else if (action.startsWith('fragen_')) {
const category = action.replace('fragen_', ''); const category = action.replace('fragen_', '');
showFragenInCategory(chatId, category, fragenData); showFragenInCategory(chatId, category, fragenData);
} else if (action.startsWith('frage_')) { } else if (action.startsWith('frage_')) {
const questionId = action.replace('frage_', ''); const questionId = action.replace('frage_', '');
showFrageAnswer(chatId, questionId, fragenData); showFrageAnswer(chatId, questionId, fragenData);
} else { } else {
handleMainMenu(callbackQuery.message, chatId, linksData, fragenData); handleMainMenu(callbackQuery.message, chatId, linksData, fragenData);
} }
}); });
bot.startPolling(); bot.startPolling();
// Logging Bot Information // Logging Bot Information
console.log(` console.log(`
*Bot Information:* *Bot Information:*
- *Name:* ${escapeMarkdown(botInfo.name)} - *Name:* ${escapeMarkdown(botInfo.name)}
- *Version:* ${escapeMarkdown(botInfo.version)} - *Version:* ${escapeMarkdown(botInfo.version)}
- *Author:* ${escapeMarkdown(botInfo.author)} - *Author:* ${escapeMarkdown(botInfo.author)}
- *License:* ${escapeMarkdown(botInfo.license)} - *License:* ${escapeMarkdown(botInfo.license)}
Bot ist gestartet und bereit. Bot ist gestartet und bereit.
`); `);
} }
function showBotInfo(chatId) { function showBotInfo(chatId) {
// Sende zuerst das Logo // Sende zuerst das Logo
bot.sendPhoto(chatId, logoPath, { caption: '*Der Bot wurde am 08.01.2024 erstellt' }) bot.sendPhoto(chatId, logoPath, { caption: '*Der Bot wurde am 08.01.2024 erstellt' })
.then(() => { .then(() => {
// Dann sende die Bot-Informationen // Dann sende die Bot-Informationen
const botInfoMessage = ` const botInfoMessage = `
*Bot Information:* *Bot Information:*
- *Name:* ${escapeMarkdown(botInfo.name)} - *Name:* ${escapeMarkdown(botInfo.name)}
- *Author:* ${escapeMarkdown(botInfo.author)} - *Author:* ${escapeMarkdown(botInfo.author)}
- *License:* ${escapeMarkdown(botInfo.license)} - *License:* ${escapeMarkdown(botInfo.license)}
`; `;
return bot.sendMessage(chatId, botInfoMessage, { parse_mode: 'Markdown' }); return bot.sendMessage(chatId, botInfoMessage, { parse_mode: 'Markdown' });
}) })
.then(() => { .then(() => {
console.log('Bot-Informationen erfolgreich gesendet.'); console.log('Bot-Informationen erfolgreich gesendet.');
}) })
.catch((error) => { .catch((error) => {
console.error('Fehler beim Senden der Bot-Info oder des Logos:', error); console.error('Fehler beim Senden der Bot-Info oder des Logos:', error);
}); });
} }
function escapeMarkdown(text) { function escapeMarkdown(text) {
// Funktion zum Hinzufügen von Escape-Zeichen für Markdown-Sonderzeichen // Funktion zum Hinzufügen von Escape-Zeichen für Markdown-Sonderzeichen
return text.replace(/[_*[\]()~`>#+-=|{}.!]/g, '\\$&'); return text.replace(/[_*[\]()~`>#+-=|{}.!]/g, '\\$&');
} }
function showLinksMenu(chatId, linksData) { function showLinksMenu(chatId, linksData) {
const linksMenuKeyboard = { const linksMenuKeyboard = {
reply_markup: { reply_markup: {
inline_keyboard: linksData.map((category) => [ inline_keyboard: linksData.map((category) => [
{ text: category.category, callback_data: `links_${category.category}` }, { text: category.category, callback_data: `links_${category.category}` },
]), ]),
}, },
}; };
bot.sendMessage(chatId, 'Wähle eine Kategorie:', linksMenuKeyboard) bot.sendMessage(chatId, 'Wähle eine Kategorie:', linksMenuKeyboard)
.catch((error) => { .catch((error) => {
console.error('Fehler beim Senden der Links-Menü-Tastatur:', error); console.error('Fehler beim Senden der Links-Menü-Tastatur:', error);
}); });
} }
function showLinksInCategory(chatId, category, linksData) { function showLinksInCategory(chatId, category, linksData) {
const categoryData = linksData.find((c) => c.category === category); const categoryData = linksData.find((c) => c.category === category);
if (categoryData) { if (categoryData) {
const linksKeyboard = { const linksKeyboard = {
reply_markup: { reply_markup: {
inline_keyboard: categoryData.links.map((link) => [ inline_keyboard: categoryData.links.map((link) => [
{ text: link.keyword, url: link.url }, { text: link.keyword, url: link.url },
]), ]),
}, },
}; };
bot.sendMessage(chatId, `Hier sind die Links in der Kategorie '${category}':`, linksKeyboard) bot.sendMessage(chatId, `Hier sind die Links in der Kategorie '${category}':`, linksKeyboard)
.catch((error) => { .catch((error) => {
console.error('Fehler beim Senden der Links-Tastatur:', error); console.error('Fehler beim Senden der Links-Tastatur:', error);
}); });
} else { } else {
bot.sendMessage(chatId, `Keine Links gefunden für die Kategorie '${category}'.`) bot.sendMessage(chatId, `Keine Links gefunden für die Kategorie '${category}'.`)
.catch((error) => { .catch((error) => {
console.error('Fehler beim Senden der Nachricht ohne Links:', error); console.error('Fehler beim Senden der Nachricht ohne Links:', error);
}); });
} }
} }
function showTeam(chatId, teamData) { function showTeam(chatId, teamData) {
let teamMessage = 'Unser Team:\n\n'; let teamMessage = 'Unser Team:\n\n';
teamData.forEach((member) => { teamData.forEach((member) => {
teamMessage += `*Name:* ${member.name}\n*Position:* ${member.position}\n*zuständig:* ${member.zustaendig}\n*Profil:* [Profil](${member.profil})\n\n`; teamMessage += `*Name:* ${member.name}\n*Position:* ${member.position}\n*zuständig:* ${member.zustaendig}\n*Profil:* [Profil](${member.profil})\n\n`;
}); });
bot.sendMessage(chatId, teamMessage, { parse_mode: 'Markdown' }) bot.sendMessage(chatId, teamMessage, { parse_mode: 'Markdown' })
.catch((error) => { .catch((error) => {
console.error('Fehler beim Senden der Team-Nachricht:', error); console.error('Fehler beim Senden der Team-Nachricht:', error);
}); });
} }
function showFragenMenu(chatId, fragenData) { function showFragenMenu(chatId, fragenData) {
const fragenMenuKeyboard = { const fragenMenuKeyboard = {
reply_markup: { reply_markup: {
inline_keyboard: fragenData.map((category) => [ inline_keyboard: fragenData.map((category) => [
{ text: category.category, callback_data: `fragen_${category.category}` }, { text: category.category, callback_data: `fragen_${category.category}` },
]), ]),
}, },
}; };
bot.sendMessage(chatId, 'Wähle eine Kategorie:', fragenMenuKeyboard) bot.sendMessage(chatId, 'Wähle eine Kategorie:', fragenMenuKeyboard)
.catch((error) => { .catch((error) => {
console.error('Fehler beim Senden der Fragen-Menü-Tastatur:', error); console.error('Fehler beim Senden der Fragen-Menü-Tastatur:', error);
}); });
} }
function showFragenInCategory(chatId, category, fragenData) { function showFragenInCategory(chatId, category, fragenData) {
const categoryData = fragenData.find((c) => c.category === category); const categoryData = fragenData.find((c) => c.category === category);
if (categoryData) { if (categoryData) {
const fragenKeyboard = { const fragenKeyboard = {
reply_markup: { reply_markup: {
inline_keyboard: categoryData.questions.map((frage) => [ inline_keyboard: categoryData.questions.map((frage) => [
{ text: frage.question, callback_data: `frage_${frage.id}` }, { text: frage.question, callback_data: `frage_${frage.id}` },
]), ]),
}, },
}; };
bot.sendMessage(chatId, `Hier sind die Fragen in der Kategorie '${category}':`, fragenKeyboard) bot.sendMessage(chatId, `Hier sind die Fragen in der Kategorie '${category}':`, fragenKeyboard)
.catch((error) => { .catch((error) => {
console.error('Fehler beim Senden der Fragen-Tastatur:', error); console.error('Fehler beim Senden der Fragen-Tastatur:', error);
}); });
} else { } else {
bot.sendMessage(chatId, `Keine Fragen gefunden für die Kategorie '${category}'.`) bot.sendMessage(chatId, `Keine Fragen gefunden für die Kategorie '${category}'.`)
.catch((error) => { .catch((error) => {
console.error('Fehler beim Senden der Nachricht ohne Fragen:', error); console.error('Fehler beim Senden der Nachricht ohne Fragen:', error);
}); });
} }
} }
async function handleFragen(chatId, fragenData) { async function handleFragen(chatId, fragenData) {
showFragenMenu(chatId, fragenData); showFragenMenu(chatId, fragenData);
} }
async function showFrageAnswer(chatId, questionId, fragenData) { async function showFrageAnswer(chatId, questionId, fragenData) {
const questionData = fragenData.flatMap((c) => c.questions).find((q) => q.id === questionId); const questionData = fragenData.flatMap((c) => c.questions).find((q) => q.id === questionId);
console.log('Frage-ID:', questionId); console.log('Frage-ID:', questionId);
console.log('Gefundene Frage-Daten:', questionData); console.log('Gefundene Frage-Daten:', questionData);
if (questionData) { if (questionData) {
const answerMessage = `Antwort auf Frage '${questionData.question}':\n${questionData.answer}`; const answerMessage = `Antwort auf Frage '${questionData.question}':\n${questionData.answer}`;
bot.sendMessage(chatId, answerMessage, { parse_mode: 'Markdown' }) bot.sendMessage(chatId, answerMessage, { parse_mode: 'Markdown' })
.catch((error) => { .catch((error) => {
console.error('Fehler beim Senden der Antwort auf die Frage:', error); console.error('Fehler beim Senden der Antwort auf die Frage:', error);
}); });
} else { } else {
bot.sendMessage(chatId, `Keine Antwort gefunden für die Frage '${questionId}'.`) bot.sendMessage(chatId, `Keine Antwort gefunden für die Frage '${questionId}'.`)
.catch((error) => { .catch((error) => {
console.error('Fehler beim Senden der Nachricht ohne Antwort:', error); console.error('Fehler beim Senden der Nachricht ohne Antwort:', error);
}); });
} }
} }
async function handleTicketCreation(msg, chatId, linksData) { async function handleTicketCreation(msg, chatId, linksData) {
const userId = msg.from.id; const userId = msg.from.id;
const userStatus = ticketCreationStatus.get(chatId); const userStatus = ticketCreationStatus.get(chatId);
switch (userStatus.step) { switch (userStatus.step) {
case 'waiting_for_name': case 'waiting_for_name':
userStatus.step = 'waiting_for_email'; userStatus.step = 'waiting_for_email';
userStatus.name = msg.text; userStatus.name = msg.text;
bot.sendMessage(chatId, 'Danke! Bitte gib nun deine E-Mail-Adresse ein:') bot.sendMessage(chatId, 'Danke! Bitte gib nun deine E-Mail-Adresse ein:')
.catch((error) => { .catch((error) => {
console.error('Fehler beim Senden der Aufforderung für den Namen:', error); console.error('Fehler beim Senden der Aufforderung für den Namen:', error);
}); });
break; break;
case 'waiting_for_email': case 'waiting_for_email':
userStatus.step = 'waiting_for_message'; userStatus.step = 'waiting_for_message';
userStatus.email = msg.text; userStatus.email = msg.text;
bot.sendMessage(chatId, 'Vielen Dank! Bitte schreibe jetzt deine Nachricht:') bot.sendMessage(chatId, 'Vielen Dank! Bitte schreibe jetzt deine Nachricht:')
.catch((error) => { .catch((error) => {
console.error('Fehler beim Senden der Aufforderung für die E-Mail:', error); console.error('Fehler beim Senden der Aufforderung für die E-Mail:', error);
}); });
break; break;
case 'waiting_for_message': case 'waiting_for_message':
userStatus.message = msg.text; userStatus.message = msg.text;
sendTicketEmail(chatId, userStatus); sendTicketEmail(chatId, userStatus);
ticketCreationStatus.delete(chatId); ticketCreationStatus.delete(chatId);
bot.sendMessage(chatId, 'Vielen Dank! Dein Ticket wurde erstellt. Wir melden uns bald bei dir.') bot.sendMessage(chatId, 'Vielen Dank! Dein Ticket wurde erstellt. Wir melden uns bald bei dir.')
.catch((error) => { .catch((error) => {
console.error('Fehler beim Senden der Bestätigungsnachricht für das Ticket:', error); console.error('Fehler beim Senden der Bestätigungsnachricht für das Ticket:', error);
}); });
handleMainMenu(msg, chatId, linksData); handleMainMenu(msg, chatId, linksData);
break; break;
} }
} }
const handleMainMenu = (msg, chatId, linksData, fragenData) => { const handleMainMenu = (msg, chatId, linksData, fragenData) => {
const mainMenuKeyboard = { const mainMenuKeyboard = {
reply_markup: { reply_markup: {
inline_keyboard: [ inline_keyboard: [
[{ text: 'Ticket erstellen', callback_data: 'create_ticket' }], [{ text: 'Ticket erstellen', callback_data: 'create_ticket' }],
[{ text: 'Links', callback_data: 'links' }], [{ text: 'Links', callback_data: 'links' }],
[{ text: 'Fragen', callback_data: 'fragen' }], [{ text: 'Fragen', callback_data: 'fragen' }],
[{ text: 'Team', callback_data: 'team' }], [{ text: 'Team', callback_data: 'team' }],
], ],
}, },
}; };
bot.sendMessage(chatId, 'Hallo! Bitte wähle eine Option:', mainMenuKeyboard) bot.sendMessage(chatId, 'Hallo! Bitte wähle eine Option:', mainMenuKeyboard)
.catch((error) => { .catch((error) => {
console.error('Fehler beim Senden des Hauptmenüs:', error); console.error('Fehler beim Senden des Hauptmenüs:', error);
}); });
}; };
function sendTicketEmail(chatId, ticketInfo) { function sendTicketEmail(chatId, ticketInfo) {
const mailOptions = { const mailOptions = {
from: `"${ticketInfo.name}" <${emailConfig.user}>`, from: `"${ticketInfo.name}" <${emailConfig.user}>`,
to: emailConfig.recipient, to: emailConfig.recipient,
subject: 'Supportanfrage', subject: 'Supportanfrage',
text: `Name: ${ticketInfo.name}\nE-Mail: ${ticketInfo.email}\nNachricht: ${ticketInfo.message}`, text: `Name: ${ticketInfo.name}\nE-Mail: ${ticketInfo.email}\nNachricht: ${ticketInfo.message}`,
}; };
const transporter = nodemailer.createTransport({ const transporter = nodemailer.createTransport({
service: 'gmail', service: 'gmail',
auth: { auth: {
user: emailConfig.user, user: emailConfig.user,
pass: emailConfig.pass, pass: emailConfig.pass,
}, },
}); });
transporter.sendMail(mailOptions, (error, info) => { transporter.sendMail(mailOptions, (error, info) => {
if (error) { if (error) {
console.error('Fehler beim Senden der Ticket-E-Mail:', error); console.error('Fehler beim Senden der Ticket-E-Mail:', error);
} else { } else {
console.log('Ticket-E-Mail erfolgreich gesendet:', info.response); console.log('Ticket-E-Mail erfolgreich gesendet:', info.response);
} }
}); });
} }
initializeBot(); initializeBot();
/*
async function handleHelp(chatId, linksData, fragenData) {
console.log('Hilfe-Befehl empfangen: /help');
// Du kannst die Hilfe-Nachricht nach Bedarf anpassen
const helpMessage = `
Hilfe-Menü:
- Um das Hauptmenü anzuzeigen, senden Sie einfach "/menu".
- Verwenden Sie "/info", um Informationen zum Bot zu erhalten.
- Verwenden Sie "/logo", um das Bot-Logo anzuzeigen.
`;
bot.sendMessage(chatId, helpMessage)
.catch((error) => {
console.error('Fehler beim Senden der Hilfe-Nachricht:', error);
});
}
*/