Initial import of pytubedl - web part
This commit is contained in:
commit
f0da90a81b
2 changed files with 81 additions and 0 deletions
32
pytubedl.py
Normal file
32
pytubedl.py
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
from flask import Flask, render_template, request, flash
|
||||||
|
from wtforms import Form, StringField
|
||||||
|
from wtforms.validators import DataRequired, URL
|
||||||
|
import secrets
|
||||||
|
|
||||||
|
DEBUG = False
|
||||||
|
app = Flask(__name__)
|
||||||
|
app.config['SECRET_KEY'] = secrets.token_urlsafe(20)
|
||||||
|
|
||||||
|
class MyForm(Form):
|
||||||
|
url = StringField('url', validators=[DataRequired(), URL(message='Must be a valid URL')])
|
||||||
|
|
||||||
|
@app.route('/', methods=['GET', 'POST'])
|
||||||
|
def hello():
|
||||||
|
# TODO: error handling?
|
||||||
|
form = MyForm(request.form)
|
||||||
|
# print(form.errors)
|
||||||
|
|
||||||
|
if request.method == 'POST':
|
||||||
|
url = request.form['url']
|
||||||
|
print("URL: " + url)
|
||||||
|
|
||||||
|
if form.validate():
|
||||||
|
flash('OK. Download in progress')
|
||||||
|
else:
|
||||||
|
flash('Error: bad URL')
|
||||||
|
|
||||||
|
return render_template('index.html', form=form)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
app.run()
|
49
templates/index.html
Normal file
49
templates/index.html
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en" data-theme='dark'>
|
||||||
|
<style>
|
||||||
|
:root {
|
||||||
|
--background-color: #fff;
|
||||||
|
--text-color: #121416d8;
|
||||||
|
--link-color: #543fd7;
|
||||||
|
}
|
||||||
|
|
||||||
|
html[data-theme='light'] {
|
||||||
|
--background-color: #fff;
|
||||||
|
--text-color: #121416d8;
|
||||||
|
--link-color: #543fd7;
|
||||||
|
}
|
||||||
|
|
||||||
|
html[data-theme='dark'] {
|
||||||
|
--background-color: #212a2e;
|
||||||
|
--text-color: #F7F8F8;
|
||||||
|
--link-color: #828fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
background: var(--background-color);
|
||||||
|
color: var(--text-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>PyTubeDL</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<form method="POST" action="/">
|
||||||
|
{{ form.csrf }}
|
||||||
|
{{ form.url.label }} {{ form.url }}
|
||||||
|
<input type="submit" value="Go">
|
||||||
|
</form>
|
||||||
|
{% with messages = get_flashed_messages() %}
|
||||||
|
{% if messages %}
|
||||||
|
<ul class=flashes>
|
||||||
|
{% for message in messages %}
|
||||||
|
<li>{{ message }}</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
{% endif %}
|
||||||
|
{% endwith %}
|
||||||
|
</body>
|
||||||
|
</html>
|
Loading…
Reference in a new issue