diff --git a/bot.js b/bot.js index 79702f6..0732b1c 100644 --- a/bot.js +++ b/bot.js @@ -1684,6 +1684,49 @@ async function fetchRandomKidsMovie() { } } + + +// Funktion zum Kürzen der Zusammenfassung +function truncateSummary(summary, maxLength) { + if (summary.length > maxLength) { + return summary.slice(0, maxLength) + '...'; // Kürzen und "..." hinzufügen + } + return summary; +} + +// Funktion zum Erstellen der Bildunterschrift +function createCaption(title, summary) { + // Initiale Bildunterschrift ohne Kürzung + let caption = ` +Hier ist der empfohlene Film des Tages: + +🎬 Titel: ${title || 'Unbekannt'} + +📝 Zusammenfassung: +${summary || 'Keine Zusammenfassung verfügbar'} + `; + + // Überprüfen, ob die Bildunterschrift zu lang ist + if (caption.length > MAX_CAPTION_LENGTH) { + // Berechnen der maximalen Länge für die Zusammenfassung + const maxSummaryLength = MAX_CAPTION_LENGTH - (caption.length - summary.length); + // Kürzen der Zusammenfassung auf die berechnete Länge + const truncatedSummary = truncateSummary(summary, maxSummaryLength); + + // Neu zusammenstellen der Bildunterschrift mit der gekürzten Zusammenfassung + caption = ` +Hier ist der empfohlene Film des Tages: + +🎬 Titel: ${title || 'Unbekannt'} + +📝 Zusammenfassung: +${truncatedSummary} + `; + } + + return caption; +} + // /empfehlung-Befehl verarbeiten bot.onText(/\/empfehlung/, async (msg) => { const chatId = msg.chat.id; @@ -1696,15 +1739,16 @@ bot.onText(/\/empfehlung/, async (msg) => { const movieSummary = dailyMovie.summary || 'Keine Zusammenfassung verfügbar'; const movieThumb = dailyMovie.thumb ? `${process.env.PLEX_DOMAIN}${dailyMovie.thumb}?X-Plex-Token=${process.env.PLEX_TOKEN}` : ''; - const message = `Hier ist der empfohlene Film des Tages:\n\nTitel: ${movieTitle}\n\nZusammenfassung: \n${movieSummary}`; + // Erstellen der Bildunterschrift und Kürzen, falls nötig + const message = createCaption(movieTitle, movieSummary); // Bild anzeigen, wenn vorhanden if (movieThumb) { - await bot.sendPhoto(chatId, movieThumb, { caption: message }).catch(error => { + await bot.sendPhoto(chatId, movieThumb, { caption: message, parse_mode: 'Markdown' }).catch(error => { logError(`Error sending photo to chatId ${chatId}: ${error.message}`); }); } else { - await bot.sendMessage(chatId, message).catch(error => { + await bot.sendMessage(chatId, message, { parse_mode: 'Markdown' }).catch(error => { logError(`Error sending message to chatId ${chatId}: ${error.message}`); }); } @@ -1738,6 +1782,7 @@ bot.onText(/\/empfehlung/, async (msg) => { + // Session-Management für Feedback const feedbackSessions = {};