Files
qrmaker/index.py
Fergal Moran d6c081302e Files added
2011-01-07 17:52:03 +00:00

83 lines
2.4 KiB
Python

import logging
import sys
import os
sys.path.insert(0, os.path.dirname(__file__))
def initLogging():
logging.basicConfig(level=logging.DEBUG
,format='%(asctime)s [[%(levelname)s]] %(message)s'
,datefmt='%d %b %y %H:%M'
,filename='/tmp/qrmaker.log'
,filemode='a')
import bottle
from bottle import route, request, redirect, run, template, static_file
from qrmaker import QRMaker
from auth import rpxtokenurl
from model import user
initLogging()
logging.debug("Path: " + os.path.dirname(__file__) + '/views/')
bottle.TEMPLATE_PATH.insert(0, os.path.dirname(__file__) + '/views/')
@route('/favicon.ico')
def favicon():
return static_file('favicon.ico', root=os.path.dirname(__file__) + '/static/images')
@route('/static/:directory/:filename')
def server_static(directory, filename):
return static_file(filename, root=os.path.dirname(__file__) + '/static/%s' % directory)
@route('/css/:filename')
def server_static(filename):
return static_file(filename, root=os.path.dirname(__file__) + '/views/css')
@route('/js/:filename')
def server_static(filename):
return static_file(filename, root=os.path.dirname(__file__) + '/views/js')
@route('auth_proxy', method='POST')
def auth_proxy():
ret = rpxtokenurl.rpx_response(request.forms.get('token'))
if type(ret).__name__ == 'dict':
newUser = user.UserController(ret)
newUser.generatePermalink()
return template('qrcode')
else:
return ret
@route('/permalink/:id')
def permalink(id=''):
if id == '':
return template('qrcode', id='', linkurl='Invalid qrcode id')
else:
qr = QRMaker.QRMaker()
linkUrl = 'Here is your permalink for this vcard <br /> <a href="http://%s/%s">Link</a>' % (request['HTTP_HOST'], qr.generatePermalink(id))
return template(
'qrcode',
id=id,
linkurl=linkUrl
)
@route('/qrcode')
def index():
if id == '':
return 'Invalid qrcode id specified'
else:
return template('qrcode', id='', linkurl='')
@route('/:name')
def index(name='World'):
return template('qrform')
@route('/')
def index():
return template('qrform')
@route('/genqr', method='POST')
def gen_qrvcard():
qr = QRMaker.QRMaker()
uid = qr.createVCard(request.forms)
return template('qrcode', id=uid, linkurl='')
application = bottle.default_app()