stacosys/app/controllers/form.py
2017-11-11 08:44:28 +01:00

41 lines
No EOL
1 KiB
Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import logging
import config
from flask import request, jsonify, abort, redirect
from app import app
from app.models.site import Site
from app.models.comment import Comment
from app.helpers.hashing import md5
from app.services import processor
logger = logging.getLogger(__name__)
@app.route("/newcomment", methods=['POST'])
def new_form_comment():
try:
data = request.form
logger.info(data)
# validate token: retrieve site entity
token = data.get('token', '')
site = Site.select().where(Site.token == token).get()
if site is None:
logger.warn('Unknown site %s' % token)
abort(400)
# honeypot for spammers
captcha = data.get('captcha', '')
if captcha:
logger.warn('discard spam: data %s' % data)
abort(400)
processor.enqueue({'request': 'new_comment', 'data': data})
except:
logger.exception("new comment failure")
abort(400)
return redirect('/redirect', code=302)