1 | # -*- coding: utf-8 -*- |
||
2 | # |
||
3 | # Copyright 2020 Quentin Kniep <[email protected]> |
||
4 | # Distributed under terms of the MIT license. |
||
5 | |||
6 | import os.path |
||
7 | |||
8 | from flask import Flask, redirect, render_template, url_for |
||
9 | |||
10 | from util import url_dec, url_enc, YoutubeWrapper |
||
11 | |||
12 | |||
13 | app = Flask(__name__) |
||
14 | youtube = YoutubeWrapper() |
||
15 | |||
16 | |||
17 | @app.route('/') |
||
18 | def index(): |
||
19 | return render_template('index.html', videos=queue, |
||
0 ignored issues
–
show
Comprehensibility
Best Practice
introduced
by
![]() |
|||
20 | numVids=len(queue), current=currentlyPlaying, |
||
0 ignored issues
–
show
Comprehensibility
Best Practice
introduced
by
|
|||
21 | # volume=int(player.volume)) |
||
22 | volume=100) |
||
23 | |||
24 | |||
25 | @app.route('/search/<keyword>') |
||
26 | def search_results(keyword): |
||
27 | keyword = url_dec(keyword) |
||
28 | vids = youtube.search(keyword, 50) |
||
29 | return render_template('results.html', videos=vids, |
||
30 | header='Search Results', subheader='For: '+keyword) |
||
31 | |||
32 | |||
33 | @app.route('/rec/<ytid>/<title>') |
||
34 | def yt_recommendations(ytid, title): |
||
35 | title = url_dec(title) |
||
36 | vids = youtube.search(ytid, 50, recs=True) |
||
37 | return render_template('results.html', videos=vids, |
||
38 | header='Recommendations', |
||
39 | subheader='Based on: '+title) |
||
40 | |||
41 | |||
42 | @app.route('/add/<ytid>/<title>') |
||
43 | def add_song(ytid, title): |
||
44 | title = url_dec(title) |
||
45 | already_downloaded = False |
||
46 | if os.path.isfile('downloads/'+ytid): |
||
47 | already_downloaded = True |
||
48 | queue.append([ytid, title, url_enc(title), already_downloaded]) |
||
0 ignored issues
–
show
Comprehensibility
Best Practice
introduced
by
|
|||
49 | return render_template('added') |
||
50 | |||
51 | |||
52 | @app.route('/remove/<ytid>') |
||
53 | def remove_song(ytid): |
||
54 | global queue |
||
55 | queue = list(filter(lambda x: x[0] != ytid, queue)) |
||
56 | return redirect(url_for('/')) |
||
57 | |||
58 | |||
59 | # @app.route('/skip') |
||
60 | # def skip_song(): |
||
61 | # player.seek(100, 'absolute-percent') |
||
62 | # return redirect(url_for('/')) |
||
63 | |||
64 | |||
65 | # @app.route('/volume/<vol>') |
||
66 | # def change_volume(vol): |
||
67 | # if int(vol) > player.volume_max: |
||
68 | # player.volume = player.volume_max |
||
69 | # else: |
||
70 | # player.volume = vol |
||
71 | # return redirect(url_for('/')) |
||
72 | |||
73 | |||
74 | if __name__ == '__main__': |
||
75 | app.run(debug=True) |
||
76 |