plex-bot.js aktualisiert
This commit is contained in:
parent
dbf1fe80ff
commit
c18e957ddc
168
plex-bot.js
168
plex-bot.js
|
@ -457,7 +457,7 @@ function generateRandomPassword() {
|
|||
const uppercaseChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
||||
const lowercaseChars = 'abcdefghijklmnopqrstuvwxyz';
|
||||
const digits = '0123456789';
|
||||
const specialChars = '@#$!';
|
||||
const specialChars = '@$!+-*&';
|
||||
|
||||
const allChars = uppercaseChars + lowercaseChars + digits + specialChars;
|
||||
|
||||
|
@ -2226,6 +2226,9 @@ function logError(message) {
|
|||
const timestamp = new Date().toISOString();
|
||||
fs.appendFileSync('error.log', `${timestamp} - ${message}\n`);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Umgebungsvariable für die Chat-ID der Entwickler
|
||||
const DEV_CHAT_ID = parseInt(process.env.DEV_CHAT_ID, 10);
|
||||
|
||||
|
@ -2246,7 +2249,8 @@ function getDevOptionsKeyboard() {
|
|||
reply_markup: {
|
||||
inline_keyboard: [
|
||||
[{ text: '💡 Funktionswunsch', callback_data: 'dev_request' }],
|
||||
[{ text: '🐞 Bug melden', callback_data: 'dev_bug' }]
|
||||
[{ text: '🐞 Bug melden', callback_data: 'dev_bug' }],
|
||||
[{ text: '🎬 Film Report', callback_data: 'film_report' }]
|
||||
]
|
||||
}
|
||||
};
|
||||
|
@ -2292,6 +2296,15 @@ bot.on('callback_query', (query) => {
|
|||
};
|
||||
break;
|
||||
|
||||
case 'film_report':
|
||||
responseText = '🎬 *Bitte geben Sie den Film Report ein:* \n\nTitel & Fehlerbeschreibung:';
|
||||
replyMarkup = {
|
||||
reply_markup: {
|
||||
force_reply: true
|
||||
}
|
||||
};
|
||||
break;
|
||||
|
||||
default:
|
||||
// Kein Popup oder Nachricht senden, wenn die Auswahl unbekannt ist
|
||||
return;
|
||||
|
@ -2303,32 +2316,52 @@ bot.on('callback_query', (query) => {
|
|||
// Handler für die Antworten auf die Feedback-Anfrage
|
||||
bot.on('message', async (msg) => {
|
||||
if (msg.reply_to_message && (msg.reply_to_message.text.includes('Bitte geben Sie Ihren Funktionswunsch ein:') ||
|
||||
msg.reply_to_message.text.includes('Bitte beschreiben Sie den Bug, den Sie melden möchten:'))) {
|
||||
msg.reply_to_message.text.includes('Bitte beschreiben Sie den Bug, den Sie melden möchten:') ||
|
||||
msg.reply_to_message.text.includes('Bitte geben Sie den Film Report ein:'))) {
|
||||
const chatId = msg.chat.id;
|
||||
const text = msg.text;
|
||||
const userName = msg.from.first_name + (msg.from.last_name ? ` ${msg.from.last_name}` : '');
|
||||
const userId = msg.from.id;
|
||||
const messageType = msg.reply_to_message.text.includes('Funktionswunsch') ? 'Funktionswunsch' : 'Bug';
|
||||
|
||||
const devMessage = {
|
||||
id: null, // ID wird später zugewiesen
|
||||
type: messageType,
|
||||
user: {
|
||||
name: userName,
|
||||
id: userId
|
||||
},
|
||||
message: text,
|
||||
timestamp: new Date().toISOString()
|
||||
};
|
||||
let messageType;
|
||||
let report;
|
||||
|
||||
if (msg.reply_to_message.text.includes('Funktionswunsch')) {
|
||||
messageType = 'Funktionswunsch';
|
||||
report = { type: messageType, user: { name: userName, id: userId }, message: text };
|
||||
} else if (msg.reply_to_message.text.includes('Bug')) {
|
||||
messageType = 'Bug';
|
||||
report = { type: messageType, user: { name: userName, id: userId }, message: text };
|
||||
} else if (msg.reply_to_message.text.includes('Film Report')) {
|
||||
// Hier wird der gesamte Text für Titel und Fehlerbeschreibung verwendet
|
||||
const userMessage = text.trim(); // Benutzertext
|
||||
|
||||
messageType = 'Film Report';
|
||||
report = {
|
||||
type: messageType,
|
||||
user: { name: userName, id: userId },
|
||||
message: userMessage // Der gesamte Benutzertext wird als Nachricht verwendet
|
||||
};
|
||||
}
|
||||
|
||||
// Dev Report in die Datei schreiben
|
||||
try {
|
||||
console.log('Sende Nachricht an Entwickler-Chat-ID:', DEV_CHAT_ID); // Debugging-Ausgabe
|
||||
await bot.sendMessage(DEV_CHAT_ID, formatDevMessage(devMessage), { parse_mode: 'Markdown' });
|
||||
// Nur die DEV_CHAT_ID für Bug und Funktionswunsch
|
||||
if (messageType === 'Bug' || messageType === 'Funktionswunsch') {
|
||||
console.log('Sende Nachricht an Entwickler-Chat-ID:', DEV_CHAT_ID); // Debugging-Ausgabe
|
||||
await bot.sendMessage(DEV_CHAT_ID, formatDevMessage(report), { parse_mode: 'Markdown' });
|
||||
}
|
||||
// DEV_CHAT_ID und USER2_ID für Film Reports
|
||||
else if (messageType === 'Film Report') {
|
||||
console.log('Sende Nachricht an Entwickler-Chat-ID und USER2_ID:', DEV_CHAT_ID, USER2_ID); // Debugging-Ausgabe
|
||||
await bot.sendMessage(DEV_CHAT_ID, formatDevMessage(report), { parse_mode: 'Markdown' });
|
||||
await bot.sendMessage(USER2_ID, formatDevMessage(report), { parse_mode: 'Markdown' });
|
||||
}
|
||||
|
||||
console.log('Nachricht erfolgreich gesendet.');
|
||||
|
||||
// Dev Report in die JSON-Datei speichern
|
||||
saveDevReport(devMessage);
|
||||
saveDevReport(report);
|
||||
|
||||
bot.sendMessage(chatId, '✅ Ihre Nachricht wurde erfolgreich gesendet! Vielen Dank.');
|
||||
} catch (error) {
|
||||
|
@ -2356,6 +2389,8 @@ function saveDevReport(report) {
|
|||
// Starte den Bot und erstelle die Datei
|
||||
createDevReportsFile();
|
||||
|
||||
|
||||
|
||||
// Handler für den /bot-Befehl
|
||||
bot.onText(/\/bot/, (msg) => {
|
||||
const chatId = msg.chat.id;
|
||||
|
@ -5029,6 +5064,31 @@ app.post('/api/download-backup', (req, res) => {
|
|||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// API-Endpunkt zum Abrufen der Entwicklerberichte
|
||||
app.get('/api/dev-reports', (req, res) => {
|
||||
try {
|
||||
|
@ -5060,43 +5120,43 @@ app.use(bodyParser.json());
|
|||
|
||||
// API zum Empfangen der Berichte von der HTML-Seite
|
||||
app.post('/api/submit-report', (req, res) => {
|
||||
const { type, user, message } = req.body;
|
||||
const { type, user, message } = req.body;
|
||||
|
||||
// Falls keine Chat-ID vorhanden ist, generiere eine zufällige ID
|
||||
const chatId = user.id || Math.floor(Math.random() * 1000000);
|
||||
// Falls keine Chat-ID vorhanden ist, generiere eine zufällige ID
|
||||
const chatId = user.id || Math.floor(Math.random() * 1000000);
|
||||
|
||||
const newReport = {
|
||||
id: Date.now(), // Verwende die aktuelle Zeit als eindeutige ID
|
||||
type,
|
||||
user: {
|
||||
name: user.name || 'Anonym',
|
||||
id: chatId
|
||||
},
|
||||
message,
|
||||
timestamp: new Date().toISOString()
|
||||
};
|
||||
const newReport = {
|
||||
id: Date.now(), // Verwende die aktuelle Zeit als eindeutige ID
|
||||
type,
|
||||
user: {
|
||||
name: user.name || 'Anonym',
|
||||
id: chatId
|
||||
},
|
||||
message,
|
||||
timestamp: new Date().toISOString()
|
||||
};
|
||||
|
||||
try {
|
||||
// Berichte aus der Datei laden oder ein leeres Array verwenden
|
||||
let reports = [];
|
||||
if (fs.existsSync(DEV_REPORTS_FILE_PATH)) {
|
||||
reports = JSON.parse(fs.readFileSync(DEV_REPORTS_FILE_PATH, 'utf-8'));
|
||||
}
|
||||
try {
|
||||
// Berichte aus der Datei laden oder ein leeres Array verwenden
|
||||
let reports = [];
|
||||
if (fs.existsSync(DEV_REPORTS_FILE_PATH)) {
|
||||
reports = JSON.parse(fs.readFileSync(DEV_REPORTS_FILE_PATH, 'utf-8'));
|
||||
}
|
||||
|
||||
// Füge den neuen Bericht hinzu
|
||||
reports.push(newReport);
|
||||
// Füge den neuen Bericht hinzu
|
||||
reports.push(newReport);
|
||||
|
||||
// Datei aktualisieren
|
||||
fs.writeFileSync(DEV_REPORTS_FILE_PATH, JSON.stringify(reports, null, 2));
|
||||
// Datei aktualisieren
|
||||
fs.writeFileSync(DEV_REPORTS_FILE_PATH, JSON.stringify(reports, null, 2));
|
||||
|
||||
// Optional: Senden des Berichts an Telegram
|
||||
sendToTelegram(newReport);
|
||||
// Optional: Senden des Berichts an Telegram
|
||||
sendToTelegram(newReport);
|
||||
|
||||
res.status(200).json({ message: 'Bericht erfolgreich übermittelt.' });
|
||||
} catch (error) {
|
||||
console.error('Fehler beim Schreiben des Berichts:', error);
|
||||
res.status(500).json({ message: 'Fehler beim Schreiben des Berichts.' });
|
||||
}
|
||||
res.status(200).json({ message: 'Bericht erfolgreich übermittelt.' });
|
||||
} catch (error) {
|
||||
console.error('Fehler beim Schreiben des Berichts:', error);
|
||||
res.status(500).json({ message: 'Fehler beim Schreiben des Berichts.' });
|
||||
}
|
||||
});
|
||||
|
||||
function sendToTelegram(report) {
|
||||
|
@ -5122,6 +5182,20 @@ function sendToTelegram(report) {
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// Ende Frontend
|
||||
|
||||
/// Definition der logDebug-Funktion
|
||||
|
|
Loading…
Reference in New Issue