From b9ea2dbdf295d871c19629402ad4c9183b47b434 Mon Sep 17 00:00:00 2001 From: Jim Myhrberg Date: Mon, 26 Dec 2011 01:28:15 +0000 Subject: [PATCH] updated a few things --- app.py | 36 ++++++++++++++++++++++++++++++------ 1 file changed, 30 insertions(+), 6 deletions(-) diff --git a/app.py b/app.py index 2fcdb75..bd847b4 100644 --- a/app.py +++ b/app.py @@ -1,9 +1,19 @@ import os -from flask import Flask -from flask import make_response -from flask import request + +# import flask +from flask import Flask, make_response, request + +# import pygments +from pygments import highlight +from pygments.lexers import (get_lexer_by_name, get_lexer_for_filename, + get_lexer_for_mimetype, guess_lexer_for_filename, + guess_lexer) +from pygments.formatters import get_formatter_by_name + +# initialize flask app = Flask(__name__) +# Routes @app.route('/') def hello_world(): return 'Hello World!' @@ -14,9 +24,23 @@ def api_root(): resp.headers['Content-Type'] = 'application/json' return resp -@app.route('/post', methods = ['POST']) -def post_me(): - return request.json['stuff'] +@app.route('/api/highlight', methods = ['POST']) +def api_highlight(): + if 'source' not in request.json: + return make_response(None, 422) + + if 'lang' in request.json: + lexer = get_lexer_by_name(request.json['lang']) + elif 'filename' in request.json: + lexer = guess_lexer_for_filename(request.json['filename'], + request.json['source']) + elif 'mimetype' in request.json: + lexer = get_lexer_for_mimetype(request.json['mimetype']) + else: + lexer = guess_lexer(request.json['source']) + + formatter = get_formatter_by_name('html') + return highlight(request.json['source'], lexer, formatter) if __name__ == '__main__':