You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
prolefeeder/prolefeeder.py

46 lines
1.3 KiB
Python

from flask import (Flask, render_template, flash, redirect,
url_for, request, send_from_directory)
from flask_bootstrap import Bootstrap
from flask_wtf import FlaskForm
from wtforms import DateTimeField, DecimalField, SubmitField
from wtforms.validators import DataRequired
from datetime import datetime, timedelta
from config import Config
app = Flask(__name__)
app.config.from_object(Config)
Bootstrap(app)
class DownloadForm(FlaskForm):
start_time = DateTimeField('Start time', validators=[DataRequired()])
length = DecimalField('Length', validators=[DataRequired()])
submit = SubmitField('Download')
@app.route('/', methods=['GET', 'POST'])
def download():
form = DownloadForm()
if request.method == 'GET':
form.start_time.data = datetime.now() - timedelta(hours=1)
form.length.data = 60
elif form.validate_on_submit():
flash('The download should start immediately.', 'success')
return render_template('download.html', form=form, filename='test.mp3')
else:
flash('Error', 'warning')
return render_template('download.html', form=form)
@app.route('/download_file/<path:filename>')
def download_file(filename):
return send_from_directory(app.config['DATA_DIR'], filename,
as_attachment=True)
if __name__ == '__main__':
app.run(debug=True)