From 580906dc7864ca459b1f69e7c1446c74d53b96f5 Mon Sep 17 00:00:00 2001 From: Kamil Date: Wed, 18 Dec 2024 09:22:34 +0000 Subject: [PATCH] feat: add Jellyfin link button filter and integrate into playlist info template --- app/filters.py | 11 +++++++++++ templates/partials/_playlist_info.html | 7 ++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/app/filters.py b/app/filters.py index 97b188e..d3c047f 100644 --- a/app/filters.py +++ b/app/filters.py @@ -98,6 +98,17 @@ def jellyfin_link(jellyfin_id: str) -> Markup: link = f"{jellyfin_server_url}/web/#/details?id={jellyfin_id}" return Markup(f'{jellyfin_id}') +@template_filter('jellyfin_link_button') +def jellyfin_link_btn(jellyfin_id: str) -> Markup: + + jellyfin_server_url = app.config.get('JELLYFIN_SERVER_URL') + if not jellyfin_server_url: + return Markup(f"JELLYFIN_SERVER_URL not configured") + + link = f"{jellyfin_server_url}/web/#/details?id={jellyfin_id}" + return Markup(f'Open in Jellyfin') + + # A template filter for displaying a datetime in a human-readable format @template_filter('human_datetime') def human_datetime(dt) -> str: diff --git a/templates/partials/_playlist_info.html b/templates/partials/_playlist_info.html index 1101543..52d136c 100644 --- a/templates/partials/_playlist_info.html +++ b/templates/partials/_playlist_info.html @@ -9,8 +9,9 @@

{{ item.track_count }} songs, {{ total_duration }}

Last Updated: {{ item.last_updated | human_datetime}} | Last Change: {{ item.last_changed | human_datetime}}

{% include 'partials/_add_remove_button.html' %} - {% if session['is_admin'] and item.jellyfin_id %}

+ {{item.jellyfin_id | jellyfin_link_button}} + {% if session['is_admin'] and item.jellyfin_id %} -

- {% endif %} + {% endif %} +