{% extends "base.html" %} {% block title %}{{ podcast.title }}{% endblock %} {% block content %}
{% if podcast.image_url %} {{ podcast.title }} {% else %}
No Image
{% endif %}

{{ podcast.title }}

{{ podcast.author or 'Unknown Author' }}

{% if podcast.description %}

{{ podcast.description[:200] }}{% if podcast.description|length > 200 %}...{% endif %}

{% endif %}
Episodes: {{ episodes|length }} Last Updated: {{ podcast.last_updated.strftime('%Y-%m-%d %H:%M') if podcast.last_updated else 'Never' }} Last Checked: {{ podcast.last_checked.strftime('%Y-%m-%d %H:%M') if podcast.last_checked else 'Never' }}
{% if podcast.feed_url %} View RSS Feed {% endif %} Configure Naming Format Manage Tags
{% if podcast.tags %}
Tags: {% for tag in podcast.get_tags() %} {{ tag }} {% endfor %}
{% endif %}
{{ episodes|length }} Episodes
{% if episodes %} {# Group episodes by season or year if season is not available #} {% set seasons = {} %} {% set season_ids = {} %} {% set season_download_counts = {} %} {% set season_counter = 0 %} {% for episode in episodes %} {% set season_key = "" %} {% if episode.season %} {# Use season number if available #} {% set season_key = "Season " ~ episode.season %} {% elif episode.published_date %} {# Use year as season if no season number but published date is available #} {% set season_key = episode.published_date.strftime('%Y') %} {% else %} {# Fallback for episodes with no season or published date #} {% set season_key = "Unsorted Episodes" %} {% endif %} {# Initialize season if not exists #} {% if season_key not in seasons %} {% set season_counter = season_counter + 1 %} {% set _ = seasons.update({season_key: []}) %} {% set _ = season_ids.update({season_key: season_counter}) %} {% set _ = season_download_counts.update({season_key: {'downloaded': 0, 'total': 0}}) %} {% endif %} {# Add episode to season #} {% set _ = seasons[season_key].append(episode) %} {# Update download counts #} {% if episode.downloaded %} {% set downloaded = season_download_counts[season_key]['downloaded'] + 1 %} {% set total = season_download_counts[season_key]['total'] + 1 %} {% else %} {% set downloaded = season_download_counts[season_key]['downloaded'] %} {% set total = season_download_counts[season_key]['total'] + 1 %} {% endif %} {% set _ = season_download_counts.update({season_key: {'downloaded': downloaded, 'total': total}}) %} {% endfor %} {# Display seasons in reverse order (newest first) #} {% if seasons %} {% for season_key, episodes_list in seasons|dictsort|reverse %} {% set season_id = season_ids[season_key] %} {% set download_stats = season_download_counts[season_key] %}

{{ season_key }} ({{ download_stats['downloaded'] }}/{{ download_stats['total'] }} episodes)

{% for episode in episodes_list|sort(attribute='published_date', reverse=true) %} {% endfor %}
Episode Published Duration Status Actions
{% if episode.episode_number %} {% if episode.season %} S{{ '%02d' % episode.season }}E{{ '%02d' % episode.episode_number|int if episode.episode_number|string|isdigit() else episode.episode_number }} {% else %} #{{ '%02d' % episode.episode_number|int if episode.episode_number|string|isdigit() else episode.episode_number }} {% endif %} {% endif %} {{ episode.title }} {% if episode.explicit %} E {% endif %}
{% if episode.description %}
{{ episode.description[:100] }}{% if episode.description|length > 100 %}...{% endif %}
{% endif %}
{{ episode.published_date.strftime('%Y-%m-%d') if episode.published_date else 'Unknown' }}
{% if episode.duration %} {{ (episode.duration / 60)|int }}m {% else %} - {% endif %}
{% if episode.downloaded %} Downloaded {% else %} Available {% endif %} {% if not episode.downloaded %} Download {% else %}
{% endif %} {% if episode.audio_url %} Stream {% endif %}
{% endfor %} {% else %} {# Display episodes in a flat table if no season information is available #} {% for episode in episodes %} {% endfor %}
Episode Published Duration Status Actions
{% if episode.episode_number %} #{{ '%02d' % episode.episode_number|int if episode.episode_number|string|isdigit() else episode.episode_number }} {% endif %} {{ episode.title }} {% if episode.explicit %} E {% endif %}
{% if episode.description %}
{{ episode.description[:100] }}{% if episode.description|length > 100 %}...{% endif %}
{% endif %}
{{ episode.published_date.strftime('%Y-%m-%d') if episode.published_date else 'Unknown' }}
{% if episode.duration %} {{ (episode.duration / 60)|int }}m {% else %} - {% endif %}
{% if episode.downloaded %} Downloaded {% else %} Available {% endif %} {% if not episode.downloaded %} Download {% else %}
{% endif %} {% if episode.audio_url %} Stream {% endif %}
{% endif %} {% else %}

No Episodes Found

No episodes found for this podcast.

{% endif %}
{% endblock %} {% block scripts %} {% include 'podcasts/naming_format_modal.html' %} {% include 'podcasts/tags_modal.html' %} {% endblock %}