diff --git a/main.py b/main.py
index 9422cc6..a76ce57 100644
--- a/main.py
+++ b/main.py
@@ -58,9 +58,30 @@ async def send_notification(notification: Notification, background_tasks: Backgr
try:
# Format the message to include the service name
# Plain text fallback
- plain_message = f"[{notification.service_name}]\n{notification.content}"
- # HTML message
- html_message = f"[{notification.service_name}]
{notification.content}"
+ plain_message = f"[{notification.service_name}] {notification.content}"
+
+ # HTML message with better formatting
+ # Map levels to emojis
+ level_emojis = {
+ "info": "âšī¸",
+ "warning": "â ī¸",
+ "error": "đ¨",
+ "success": "â
"
+ }
+ emoji = level_emojis.get(notification.level, "đĸ")
+ # Clean up content
+ cleaned_content = notification.content.replace("{album_explicit}", "")
+
+ # Format the message to include the service name
+ # Plain text fallback
+ plain_message = f"[{notification.service_name}] {cleaned_content}"
+
+ # HTML message with better formatting
+
+ html_message = (
+ f"
{cleaned_content.replace(chr(10), '" + ) # We can send it in background to not block the API response logger.info(f"Queueing message for room_id: {notification.room_id or 'Default'}") @@ -82,27 +103,40 @@ async def receive_jellyfin_webhook(payload: JellyfinPayload, background_tasks: B return {"status": "ignored", "reason": "Not an ItemAdded event"} # content construction - content = "" + plain_content = "" + html_content = "" + if payload.item_type == "Movie": - content = f"New Movie: {payload.name}" + plain_content = f"New Movie: {payload.name}" + html_content = f"
')}
{payload.overview}" + elif payload.item_type == "Episode": show = payload.series_name or "Unknown Series" s = f"S{payload.season:02d}" if payload.season is not None else "S??" e = f"E{payload.episode:02d}" if payload.episode is not None else "E??" - content = f"New Episode: {show} - {s}{e} - {payload.name}" + + plain_content = f"New Episode: {show} - {s}{e} - {payload.name}" + html_content = ( + f"