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.
stacosys/app/controllers/form.py

41 lines
1.1 KiB
Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import logging
import config
7 years ago
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)
7 years ago
return redirect('/redirect/', code=302)