dropin

alternative frontend for dropout.tv
git clone https://git.ce9e.org/dropin.git

commit
1d260fc5a5b9723e046b9b3d6a3f1882016ed376
parent
0e60a06258629bf3219ec59da1f2f955ec276e50
Author
Tobias Bengfort <tobias.bengfort@posteo.de>
Date
2025-02-10 04:10
refactor render_feed

Diffstat

M dropin.py 20 ++++++++++----------

1 files changed, 10 insertions, 10 deletions


diff --git a/dropin.py b/dropin.py

@@ -210,6 +210,14 @@ def render_response(request, template, **data):
  210   210     return web.Response(body=body, content_type='text/html')
  211   211 
  212   212 
   -1   213 def render_feed(request, data, items):
   -1   214     if not env.globals.get('ORIGIN'):
   -1   215         raise web.HTTPNotFound
   -1   216     tpl = env.get_template('feed.xml')
   -1   217     body = tpl.render(**data, items=items, request=request)
   -1   218     return web.Response(body=body, content_type='text/xml')
   -1   219 
   -1   220 
  213   221 async def home_view(request):
  214   222     sections = await fetch_items(
  215   223         'https://api.vhx.tv/browse',
@@ -250,16 +258,12 @@ async def collection_view(request):
  250   258 
  251   259 
  252   260 async def collection_feed(request):
  253    -1     if not env.globals.get('ORIGIN'):
  254    -1         raise web.HTTPNotFound
  255   261     id = request.match_info['id']
  256   262     data, items = await asyncio.gather(
  257   263         fetch(f'https://api.vhx.tv/collections/{id}'),
  258   264         fetch_items(f'https://api.vhx.tv/collections/{id}/items'),
  259   265     )
  260    -1     tpl = env.get_template('feed.xml')
  261    -1     body = tpl.render(**data, items=items, request=request)
  262    -1     return web.Response(body=body, content_type='text/xml')
   -1   266     return render_feed(request, data, items)
  263   267 
  264   268 
  265   269 async def get_series(id):
@@ -283,13 +287,9 @@ async def series_view(request):
  283   287 
  284   288 
  285   289 async def series_feed(request):
  286    -1     if not env.globals.get('ORIGIN'):
  287    -1         raise web.HTTPNotFound
  288   290     series = await get_series(request.match_info['id'])
  289   291     items = [e for season in series['seasons'] for e in season['episodes']]
  290    -1     tpl = env.get_template('feed.xml')
  291    -1     body = tpl.render(**series, items=items, request=request)
  292    -1     return web.Response(body=body, content_type='text/xml')
   -1   292     return render_feed(request, series, items)
  293   293 
  294   294 
  295   295 async def get_next(data):