149 lines
		
	
	
	
		
			6.6 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			149 lines
		
	
	
	
		
			6.6 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| {% extends "base.html" %}
 | |
| 
 | |
| {% macro make_row(title,items) %}
 | |
|     <div class="d-flex flex-wrap">
 | |
|     {% for item in items %}
 | |
|         {{item|safe}}
 | |
|     {% endfor %}
 | |
|     </div>
 | |
| {% endmacro %}
 | |
| 
 | |
| {% macro make_tabs(tabs) %}
 | |
|     <div class="row">
 | |
|         <div class="col">
 | |
|             <ul class="nav nav-pills mb-3" id="pills-tab" role="tablist">
 | |
|                 {% for (label,_) in tabs %}
 | |
|                     {% set slug = (label|slugify) %}
 | |
|                     {% if not (loop.first and loop.last) %}
 | |
|                     <li class="nav-item">
 | |
|                         <a class="nav-link {{'active' if loop.first}}" id="nav-{{slug}}-tab" data-toggle="pill" href="#pills-{{slug}}" role="tab" aria-controls="pills-{{slug}}" aria-selected="{{loop.first}}">
 | |
|                             {{label}}
 | |
|                         </a>
 | |
|                     </li>
 | |
|                     {% endif %}
 | |
|                 {% endfor %}
 | |
|             </ul>
 | |
|         </div>
 | |
|     </div>
 | |
|     
 | |
|     <div class="tab-content" id="searchResults">
 | |
|         {% for (label,items) in tabs %}
 | |
|             {% set slug = (label|slugify) %}
 | |
|             <div class="tab-pane fade {{'show active' if loop.first}}" id="pills-{{slug}}" role="tabpanel" aria-labelledby="nav-{{slug}}-tab">
 | |
|                 {{make_row(label,items)}}
 | |
|             </div>
 | |
|         {% endfor %}
 | |
|     </div>
 | |
| {% endmacro %}
 | |
| 
 | |
| {% macro upcoming(data) %}
 | |
|     <div class="container">
 | |
|     <div class="row">
 | |
|         <div class="col-lg">
 | |
|             <h3>Movies</h3>
 | |
|             <table class="table table-sm table-bordered">
 | |
|                 <tr>
 | |
|                     <th>Title</th>
 | |
|                     <th>Status</th>
 | |
|                     <th>In Cinemas</th>
 | |
|                     <th>Digital Release</th>
 | |
|                 </tr>
 | |
|                 {% for movie in data.calendar.movies %}
 | |
|                     {% if movie.isAvailable and movie.hasFile %}
 | |
|                         {% set row_attrs = "bg-success" %}
 | |
|                     {% elif movie.isAvailable and not movie.hasFile %}
 | |
|                         {% set row_attrs = "bg-danger" %}
 | |
|                     {% elif not movie.isAvailable and movie.hasFile %}
 | |
|                         {% set row_attrs = "bg-primary" %}
 | |
|                     {% elif not movie.isAvailable and not movie.hasFile %}
 | |
|                         {% set row_attrs = "bg-info" %}
 | |
|                     {% endif %}
 | |
|                     <tr class={{row_attrs}}>
 | |
|                         <td>
 | |
|                         <a title="{{movie.overview}}" href="{{urljoin(config.APP_CONFIG.radarr_url,'movie/'+movie.titleSlug)}}" style="color: #eee; text-decoration: underline;">
 | |
|                             {{movie.title}}
 | |
|                         </a>
 | |
|                         </td>
 | |
|                         <td>{{movie.status}}</td>
 | |
|                         <td>{{movie.inCinemas|fromiso|ago_dt_utc_human(rnd=0)}}</td>
 | |
|                         {% if movie.digitalRelease %}
 | |
|                             <td>{{movie.digitalRelease|fromiso|ago_dt_utc_human(rnd=0)}}</td>
 | |
|                         {% else %}
 | |
|                             <td>Unknown</td>
 | |
|                         {% endif %}
 | |
|                     </tr>
 | |
|                 {% endfor %}
 | |
|             </table>
 | |
|             <h3>Episodes</h3>
 | |
| 
 | |
|             <table class="table table-sm table-bordered">
 | |
|                 <tr>
 | |
|                     <th>Season | Episode Number</th>
 | |
|                     <th>Show</th>
 | |
|                     <th>Title</th>
 | |
|                     <th>Status</th>
 | |
|                     <th>Air Date</th>
 | |
|                 </tr>
 | |
|                 {% for entry in data.calendar.episodes %}
 | |
|                     {% if entry.details %}
 | |
|                             {% set details = entry.details[0] %}
 | |
|                     {% endif %}
 | |
|                     {% if entry.episode.hasAired and entry.episode.hasFile %}
 | |
|                         {% set row_attrs = {"class":"bg-success"} %}
 | |
|                     {% elif entry.episode.hasAired and not entry.episode.hasFile and details %}
 | |
|                         {% set row_attrs = {"style":"background-color: green !important"} %}
 | |
|                     {% elif entry.episode.hasAired and not entry.episode.hasFile %}
 | |
|                         {% set row_attrs = {"class":"bg-danger"} %}
 | |
|                     {% elif not entry.episode.hasAired and entry.episode.hasFile %}
 | |
|                         {% set row_attrs = {"class":"bg-primary"} %}
 | |
|                     {% elif not entry.episode.hasAired and not entry.episode.hasFile %}
 | |
|                         {% set row_attrs = {"class":"bg-info"} %}
 | |
|                     {% endif %}
 | |
|                     <tr {{row_attrs|xmlattr}}>
 | |
|                         <td>{{entry.episode.seasonNumber}} | {{entry.episode.episodeNumber}}</td>
 | |
|                         <td>
 | |
|                             <a href="{{urljoin(config.APP_CONFIG.sonarr_url,'series/'+entry.series.titleSlug)}}" style="color: #eee; text-decoration: underline;">
 | |
|                                 {{entry.series.title}}
 | |
|                             </a>
 | |
|                         </td>
 | |
|                         <td title="{{entry.episode.overview}}">{{entry.episode.title}}</td>
 | |
|                         <td>
 | |
|                             {% if details %}
 | |
|                                 {% set details = entry.details[0] %}
 | |
|                                 {% set dl_prc =((details.size-details.sizeleft)/details.size)*100|round(2) %}
 | |
|                                 {{details.status}} ({{dl_prc|round(2)}} %)
 | |
|                             {% elif row_attrs.class=="bg-success" %}
 | |
|                                 downloaded
 | |
|                             {% elif row_attrs.class=="bg-danger" %}
 | |
|                                 not downloaded
 | |
|                             {% elif row_attrs.class=="bg-primary" %}
 | |
|                                 leaked?
 | |
|                             {% elif row_attrs.class=="bg-info" %}
 | |
|                                 not aired
 | |
|                             {% endif %}
 | |
|                         </td>
 | |
|                         <td>{{entry.episode.airDateUtc|fromiso|ago_dt_utc_human(rnd=0)}}</td>
 | |
|                     </tr>
 | |
|                 {% endfor %}
 | |
|             </table>
 | |
|         </div>
 | |
|     </div>
 | |
|     </div>
 | |
| {% endmacro %}
 | |
| 
 | |
| {% block app_content %}
 | |
|     {% if data is none %}
 | |
|         <h2>No Data available!</h2>
 | |
|     {% else %}
 | |
|         {% set tabs = [] %}
 | |
|         {% do tabs.append(("Schedule",[upcoming(data)])) %}
 | |
|         {% for row in data.images %}
 | |
|             {% if row[0] is string %}
 | |
|                 {% set title=row[0] %}
 | |
|                 {% set row=row[1:] %}
 | |
|                 {% do tabs.append((title,row)) %}
 | |
|             {% endif %}
 | |
|         {% endfor %}
 | |
|         {{make_tabs(tabs)}}
 | |
|     {% endif %}
 | |
| {% endblock %}
 |