remotes/1693045480750635534/spooky-22
Aevann1 2021-07-31 08:51:58 +02:00
parent 4370b4f124
commit 041efe053a
2 changed files with 57 additions and 7 deletions

View File

@ -261,4 +261,49 @@ def no_cors(f):
return resp
wrapper.__name__ = f.__name__
return wrapper
return wrapper
def api(*scopes, no_ban=False):
def wrapper_maker(f):
def wrapper(*args, **kwargs):
if request.path.startswith(('/api/v1','/api/v2')):
v = kwargs.get('v')
result = f(*args, **kwargs)
if isinstance(result, dict):
resp = result['api']()
else:
resp = result
if not isinstance(resp, RespObj):
resp = make_response(resp)
return resp
else:
result = f(*args, **kwargs)
if not isinstance(result, dict):
return result
try:
if request.path.startswith('/inpage/'):
return result['inpage']()
elif request.path.startswith(('/api/vue/','/test/')):
return result['api']()
else:
return result['html']()
except KeyError:
return result
wrapper.__name__ = f.__name__
return wrapper
return wrapper_maker

View File

@ -159,9 +159,11 @@ def post_pid_comment_cid(cid, pid=None, anything=None, v=None):
@app.post("/api/comment")
@app.post("/api/v1/comment")
@limiter.limit("6/minute")
@is_not_banned
@validate_formkey
@api("create")
def api_comment(v):
parent_submission = request.form.get("submission")
@ -548,12 +550,15 @@ def api_comment(v):
v.comment_count = v.comments.filter(Comment.parent_submission != None).filter_by(is_banned=False, deleted_utc=0).count()
g.db.add(v)
if request.headers.get("Authorization"): return c.json
else: return render_template("comments.html",
v=v,
comments=[c],
render_replies=False,
)
return {"html": lambda: jsonify({"html": render_template("comments.html",
v=v,
comments=[c],
render_replies=False,
)}),
"api": lambda: c.json
}