|
|
@ -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): |
|
|
|
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) |
|
|
|
if request.form["file"]: |
|
|
|
return _schedule_file(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" |
|
|
|