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