#!/usr/bin/python from flask import Flask, render_template, Response from re import match from users import users app = Flask('BrmBar') @app.route('/') def index(): return render_template('index.html') @app.route('/code/') def code(code): if code == 'R0000': return Response('RESET', content_type = 'text/plain') if match('^\C[0-9]{4}$', code): amount = int(code[1:]) return Response('CREDIT %d' % amount, content_type = 'text/plain') if match('^U[0-9]{4}$', code): userid = int(code[1:]) return Response('USER %s' % userid, content_type = 'text/plain') if match('^[0-9]+$', code): return Response('ITEM %s' % code, content_type = 'text/plain') abort(400) @app.route('/admin/') def admin(): return render_template('admin.html') @app.route('/admin/barcode-generator.txt') def admin_barcodegeneratortxt(): ret = [] ret.append('Credit 20;C0020') ret.append('Credit 50;C0050') ret.append('Credit 100;C0100') ret.append('Credit 200;C0200') ret.append('Credit 500;C0500') ret.append('Credit 1000;C1000') ret.append('Credit 2000;C2000') ret.append('RESET;R0000') for (id,name) in sorted(users.iteritems(), key = lambda (k,v): (v,k)): ret.append('%s;U%d' % (name, id)) response = Response(response = '\n'.join(ret) + '\n', content_type = 'text/plain') return response @app.route('/log/') def log(): return render_template('log.html') @app.route('/stats/') def stats(): return render_template('stats.html') if __name__ == '__main__': app.run(host = '0.0.0.0', port = 45678)