ability to upload text files
This commit is contained in:
parent
ccd584198f
commit
a8462bc720
1
.gitignore
vendored
1
.gitignore
vendored
@ -11,3 +11,4 @@ test/*
|
||||
*.db
|
||||
instance/*
|
||||
static/*
|
||||
tmpupload/*
|
||||
|
2
app.py
2
app.py
@ -10,6 +10,8 @@ def create_app():
|
||||
APP = Flask(__name__)
|
||||
APP.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///schedule.db"
|
||||
APP.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
|
||||
APP.config["MAX_CONTENT_LENGTH"] = 16 * 1000
|
||||
APP.config["UPLOAD_FOLDER"] = "tmpupload"
|
||||
db.init_app(APP)
|
||||
migrate.init_app(APP, db, render_as_batch=True)
|
||||
|
||||
|
@ -1,6 +1,8 @@
|
||||
import os
|
||||
from datetime import datetime
|
||||
from zoneinfo import ZoneInfo
|
||||
|
||||
import markdown
|
||||
from app import db
|
||||
from models.postmodel import Post
|
||||
from sqlalchemy.exc import (DatabaseError, DataError, IntegrityError,
|
||||
@ -8,24 +10,36 @@ from sqlalchemy.exc import (DatabaseError, DataError, IntegrityError,
|
||||
|
||||
|
||||
def schedule_post(request):
|
||||
if request.form["text"]:
|
||||
return _schedule_text(request)
|
||||
if request.form["file"]:
|
||||
print("Posted file: {}".format(request.files["file"]))
|
||||
print(request.headers)
|
||||
if "file" in request.files:
|
||||
print("file found")
|
||||
return _schedule_file(request)
|
||||
if request.form["text"]:
|
||||
print("text found")
|
||||
return _schedule_text(request)
|
||||
|
||||
return "no correct header found"
|
||||
|
||||
|
||||
def _schedule_file(request):
|
||||
print(request.form["file"])
|
||||
return "not yet implemented"
|
||||
file = request.files["file"]
|
||||
file_str_contents = file.read().decode("utf-8")
|
||||
html = markdown.markdown(file_str_contents)
|
||||
_save_to_database(html)
|
||||
return "file post scheduled"
|
||||
|
||||
|
||||
def _schedule_text(request):
|
||||
print(request.form["text"])
|
||||
text = request.form["text"]
|
||||
content = f"<p>{text}</p>"
|
||||
_save_to_database(content)
|
||||
return "text post scheduled"
|
||||
|
||||
|
||||
def _save_to_database(content):
|
||||
try:
|
||||
text = request.form["text"]
|
||||
content = f"<p>{text}</p>"
|
||||
zoneinfo = ZoneInfo("Europe/Berlin")
|
||||
post = Post(
|
||||
content=content,
|
||||
@ -35,7 +49,11 @@ def _schedule_text(request):
|
||||
db.session.add(post)
|
||||
db.session.commit()
|
||||
|
||||
except DatabaseError:
|
||||
except (
|
||||
IntegrityError,
|
||||
InvalidRequestError,
|
||||
DataError,
|
||||
InterfaceError,
|
||||
DatabaseError,
|
||||
):
|
||||
db.session.rollback()
|
||||
|
||||
return "post scheduled"
|
||||
|
Loading…
Reference in New Issue
Block a user