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.

53 lines
1.9 KiB
Python

from secrets import token_urlsafe
from pathlib import Path
from quart import Blueprint, render_template, request, redirect, url_for, flash, send_from_directory
from flask_login import login_required, current_user
from werkzeug.utils import secure_filename
from flipbook.helpers import allowed_file
from flipbook import config
bp = Blueprint('manage', 'manage', url_prefix='/manage')
@bp.route('')
@login_required
async def index():
return await render_template('manage.html')
@bp.route('/upload', methods=['GET', 'POST'])
@login_required
async def upload():
if request.method == "POST":
data = await request.get_data()
print(data)
post_title = request.form.get("title")
if "file" not in request.files:
await flash("You didn't upload a caliente meme, bro! You're fuckin up!", "is-danger")
return await redirect(request.url)
file = request.files["file"]
if file.filename == "":
await flash("You didn't upload a caliente meme, bro! You're fuckin up!", "is-danger")
return await redirect(request.url)
if post_title == "":
await flash("You didn't give your meme a spicy title, bro! You're fuckin up!", "is-danger")
return await redirect(request.url)
if file and allowed_file(file.filename):
filename = "{}-{}".format(
token_urlsafe(12),
secure_filename(file.filename)
)
file.save(Path(config.UPLOADS_PATH, filename))
upload = Upload(
token_id=0,
title=post_title,
image_name=filename,
text=request.form.get('text', ''),
wallet=current_user,
)
upload.save()
# upload.save_thumbnail()
await flash("Uploaded successfully!", "is-success")
return redirect(url_for("manage.index"))
return render_template("upload.html")