- commit
- 0e0ca536d0ee0c91e9d6c23675ccd995b1d4eb68
- parent
- efb6ed767993e2e51abf87cedf03a05b8ed36d9e
- Author
- Tobias Bengfort <tobias.bengfort@posteo.de>
- Date
- 2025-03-13 07:44
support files as items example: /playlist/649038/
Diffstat
M | dropin.py | 18 | ++++++++++-------- |
M | templates/_list.html | 7 | +++++-- |
2 files changed, 15 insertions, 10 deletions
diff --git a/dropin.py b/dropin.py
@@ -330,17 +330,19 @@ async def get_next(data): 330 330 try: 331 331 season_id = data['canonical_collection']['id'] 332 332 season = await fetch_items(f'https://api.vhx.tv/collections/{season_id}/items')333 -1 episode_number = [episode['id'] for episode in season].index(data['id']) + 1334 -1 if episode_number < len(season):335 -1 return season[episode_number]['id']-1 333 episode_number = [episode['id'] for episode in season].index(data['id']) -1 334 for episode in season[episode_number + 1:]: -1 335 if episode['type'] == 'video': -1 336 return episode['id'] 336 337 337 338 series_id = data['canonical_collection']['parent']['id'] 338 339 series = await fetch_items(f'https://api.vhx.tv/collections/{series_id}/items')339 -1 season_number = [season['id'] for season in series].index(season_id) + 1340 -1 if season_number < len(series):341 -1 season_id = series[season_number]['id']342 -1 season = await fetch_items(f'https://api.vhx.tv/collections/{season_id}/items')343 -1 return season[0]['id']-1 340 season_number = [season['id'] for season in series].index(season_id) -1 341 for s in series[season_number + 1:]: -1 342 season = await fetch_items(f'https://api.vhx.tv/collections/{s["id"]}/items') -1 343 for episode in season: -1 344 if episode['type'] == 'video': -1 345 return episode['id'] 344 346 except Exception: 345 347 return None 346 348
diff --git a/templates/_list.html b/templates/_list.html
@@ -1,7 +1,7 @@ 1 1 <ul class="list"> 2 2 {% for item in items %} 3 3 <li>4 -1 <a href="/{{ item.type }}/{{ item.id }}/" aria-label="{{ item.title }}">-1 4 <a href="{% if item.type == 'file'%}{{ item._links.source.href }}{% else %}/{{ item.type }}/{{ item.id }}/{% endif %}" aria-label="{{ item.name }}"> 5 5 <div class="relative"> 6 6 {% if item.thumbnail %} 7 7 <img src="{{ item.thumbnail.small }}" alt="" width="240" height="135" loading="lazy"> @@ -14,10 +14,13 @@ 14 14 <div class="thumbnail-corner">{{ item.duration|duration }}</div> 15 15 {% endif %} 16 16 </div>17 -1 <div class="list-item-title">{{ item.title }}</div>-1 17 <div class="list-item-title">{{ item.name }}</div> 18 18 {% if item.metadata and item.metadata.episode_number %} 19 19 <div class="list-item-meta">Episode {{ item.metadata.episode_number }}</div> 20 20 {% endif %} -1 21 {% if item.type == 'file' %} -1 22 <div class="list-item-meta">{{ item.size.formatted }} ({{ item.format }})</div> -1 23 {% endif %} 21 24 </a> 22 25 </li> 23 26 {% else %}