]> git.gir.st - subscriptionfeed.git/blob - app/dangerous/__init__.py
implement search params
[subscriptionfeed.git] / app / dangerous / __init__.py
1 # this is an alternative to proxying through invidious. the search endpoint has only been (loosely) tested by
2 #17:50 < perflyst[m]> appears to be working
3 #, so i hopeā„¢ this works. if not, that's why it's in the 'dangerous' blueprint
4 import requests
5 from flask import Blueprint, render_template, request, flash, g, url_for
6
7 from ..common.common import *
8 from ..common.innertube import *
9 from .lib import *
10 from .protobuf import make_sp
11
12 frontend = Blueprint('dangerous', __name__,
13 template_folder='templates',
14 static_folder='static',
15 static_url_path='/static/ys')
16
17 @frontend.route('/search')
18 def search():
19 #token = getattr(current_user, 'token', 'guest')
20 q = request.args.get('q')
21 page = int(request.args.get('page', 1))
22
23 sp = make_sp(**{
24 k:v for k,v in request.args.items()
25 if k in ['sort','date','type','len']
26 })
27
28 if q:
29 yt_results = fetch_searchresults(q, page, sp)
30
31 results = prepare_searchresults(yt_results)
32 else:
33 results = None
34
35 return render_template('search.html.j2', rows=results, query=q, page=page)
36
37 @frontend.before_app_request
38 def inject_button():
39 if not 'header_items' in g:
40 g.header_items = []
41 g.header_items.append({
42 'name': 'search',
43 'url': url_for('dangerous.search'),
44 'parent': frontend.name,
45 'priority': 15,
46 })
Imprint / Impressum