From 410fcc5ca48cdcdb7a8d6470b997e49786479c8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20Bro=20Kolst=C3=B8?= Date: Fri, 15 Aug 2025 21:08:26 +0200 Subject: [PATCH] Display runtime for each episode Closes #804 --- src/app/providers/tmdb.py | 1 + src/app/templatetags/app_tags.py | 5 +++++ src/templates/app/media_details.html | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/app/providers/tmdb.py b/src/app/providers/tmdb.py index 3c20b10a..abc2f318 100644 --- a/src/app/providers/tmdb.py +++ b/src/app/providers/tmdb.py @@ -549,6 +549,7 @@ def process_episodes(season_metadata, episodes_in_db): "title": episode["name"], "overview": episode["overview"], "history": tracked_episodes.get(episode_number, []), + "runtime": episode["runtime"], }, ) return episodes_metadata diff --git a/src/app/templatetags/app_tags.py b/src/app/templatetags/app_tags.py index d434581c..0e647bbe 100644 --- a/src/app/templatetags/app_tags.py +++ b/src/app/templatetags/app_tags.py @@ -9,6 +9,7 @@ from unidecode import unidecode from app import media_type_config from app.models import MediaTypes, Sources, Status +from app.providers.tmdb import get_readable_duration register = template.Library() @@ -434,3 +435,7 @@ def get_pagination_range(current_page, total_pages, window): result.append(total_pages) return result + +@register.filter +def readable_duration(value): + return get_readable_duration(value) diff --git a/src/templates/app/media_details.html b/src/templates/app/media_details.html index efec26c9..88761d26 100644 --- a/src/templates/app/media_details.html +++ b/src/templates/app/media_details.html @@ -669,7 +669,7 @@

{{ episode.title }}

- Episode {{ episode.episode_number }} • {{ episode.air_date|default_if_none:"Unknown air date" }} + Episode {{ episode.episode_number }} • {{ episode.air_date|default_if_none:"Unknown air date" }}{% if episode.runtime %} • {{ episode.runtime|readable_duration }}{% endif %}