Accept / reject comments via API

pull/6/head
Yax 9 years ago
parent 917ddf26ba
commit f7093cb029

@ -109,8 +109,50 @@ def report():
processor.enqueue({'request': 'report', 'data': token}) processor.enqueue({'request': 'report', 'data': token})
except: except:
logger.exception("report failure") logger.exception("report failure")
abort(500) abort(500)
return "OK" return "OK"
@app.route("/accept", methods=['GET'])
def accept_comment():
try:
id = request.args.get('id', '')
secret = request.args.get('secret', '')
if secret != config.SECRET:
logger.warn('Unauthorized request')
abort(401)
processor.enqueue({'request': 'late_accept', 'data': id})
except:
logger.exception("accept failure")
abort(500)
return "PUBLISHED"
@app.route("/reject", methods=['GET'])
def reject_comment():
try:
id = request.args.get('id', '')
secret = request.args.get('secret', '')
if secret != config.SECRET:
logger.warn('Unauthorized request')
abort(401)
processor.enqueue({'request': 'late_reject', 'data': id})
except:
logger.exception("reject failure")
abort(500)
return "REJECTED"

@ -42,6 +42,10 @@ class Processor(Thread):
unsubscribe_reader(msg['data']) unsubscribe_reader(msg['data'])
elif msg['request'] == 'report': elif msg['request'] == 'report':
report(msg['data']) report(msg['data'])
elif msg['request'] == 'late_accept':
late_accept_comment(msg['data'])
elif msg['request'] == 'late_reject':
late_reject_comment(msg['data'])
else: else:
logger.info("throw unknown request " + str(msg)) logger.info("throw unknown request " + str(msg))
except: except:
@ -160,6 +164,35 @@ def reply_comment_email(data):
comment.site.token, comment.site.url, comment.url) comment.site.token, comment.site.url, comment.url)
def late_reject_comment(id):
# retrieve site and comment rows
comment = Comment.select().where(Comment.id == id).get()
# report event
report_rejected(comment)
# delete Comment row
comment.delete_instance()
logger.info('late reject comment: %d' % id)
def late_accept_comment(id):
# retrieve site and comment rows
comment = Comment.select().where(Comment.id == id).get()
# report event
report_published(comment)
# update Comment row
comment.published = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
comment.save()
logger.info('late accept comment: %d' % id)
def get_email_metadata(message): def get_email_metadata(message):
# retrieve metadata reader email from email body sent by admin # retrieve metadata reader email from email body sent by admin
email = "" email = ""

Loading…
Cancel
Save