from flask import request from flask import Response def done(msg, status=200): return Response(msg, mimetype='text/plain', status=status) def perform_add(db): # Get the information to add msg = request.args.get('MSG','') handle = request.args.get('NAME',None) if handle is None: return done('Missing name', 400) # Insert into the database. t = db.execute("INSERT INTO comments (handle, message) VALUES (?, ?)", (handle,msg)) if t.rowcount != 1: return done('Database store failed', 500) else: db.commit() # Attempt to clean old entries. Do it in blocks. Clean when more than # 60, and trim back to 50. Just makes the updates less frequent than # deleting every 51st message. t = db.execute("SELECT max(id), min(id) FROM comments").fetchone() if not (t[0] is None): (max,min) = t if max - min > 60: db.execute("DELETE FROM comments WHERE id < ?", ((max - 50),)) db.commit() return done("OK") def mk_add(app): @app.route("/add") def add(): from . import db return perform_add(db.get_db())