wunsch-bot.js aktualisiert

This commit is contained in:
M_Viper 2024-10-14 19:54:55 +00:00
parent 8ee1015ac2
commit 51f0756400
1 changed files with 53 additions and 1 deletions

View File

@ -4,8 +4,11 @@ const fs = require('fs');
const path = require('path'); const path = require('path');
const archiver = require('archiver'); const archiver = require('archiver');
const schedule = require('node-schedule'); const schedule = require('node-schedule');
const express = require('express');
const bodyParser = require('body-parser');
// Initialisiere den Bot const app = express();
app.use(bodyParser.json());
const bot = new Telegraf(process.env.TELEGRAM_TOKEN); const bot = new Telegraf(process.env.TELEGRAM_TOKEN);
// Erlaubte Gruppen-ID und Themen-ID aus der .env-Datei // Erlaubte Gruppen-ID und Themen-ID aus der .env-Datei
@ -445,6 +448,55 @@ bot.on('text', async (ctx) => {
} }
}); });
//start Frontend
// Middleware, um statische Dateien aus dem "public"-Ordner zu servieren
app.use(express.static(path.join(__dirname, 'public')));
// API-Route zum Senden von Wünschen
app.post('/api/sendWish', async (req, res) => {
const { category, link, title } = req.body;
// Überprüfen, ob die erforderlichen Daten vorhanden sind
if (!category || !title) {
return res.status(400).send('Kategorie und Titel sind erforderlich.');
}
// Erstelle die Nachricht, die an die Telegram-Gruppe gesendet wird
const message = `🎬 *Ein neuer Wunsch ist eingegangen!*\n\n🔹 Kategorie: ${category}\n\n🔸 Titel: ${title}\n\n🔗 Link: ${link || 'Kein Link'}`;
// Inline-Tastatur mit den Buttons
const replyMarkup = {
reply_markup: JSON.stringify({
inline_keyboard: [
[
{ text: '✅ Erledigt', callback_data: 'wish_fulfilled' },
{ text: '❌ Nicht gefunden', callback_data: 'wish_not_found' }
]
]
})
};
try {
// Sende die Nachricht an die Telegram-Gruppe im richtigen Thema mit den Buttons
await bot.telegram.sendMessage(allowedChatId, message, {
message_thread_id: allowedThreadId, // Sende in das erlaubte Thema
reply_markup: replyMarkup.reply_markup // Füge die Buttons hinzu
});
res.status(200).send('Wunsch gesendet');
} catch (error) {
console.error('Error sending wish:', error);
res.status(500).send('Fehler beim Senden des Wunsches');
}
});
//End Frontend
// Server starten
const PORT = process.env.PORT || 3005;
app.listen(PORT, () => {
console.log(`Server läuft auf http://localhost:${PORT}`);
});
bot.launch(); bot.launch();