#!/usr/bin/env python import string import random import web from web import form db = web.database(dbn='mysql', user='mysecrets', pw='horsebatteries', db='mysecrets') urls = ( '/secret/api/(.*)', 'api', '/secret/(.*)', 'index' ) app = web.application(urls, globals()) render = web.template.render('templates/') create = form.Form( form.Textbox('base_url', description="domain"), form.Textbox('username'), form.Password('password'), ) def mkpass(size=10): validChars = string.ascii_letters + string.digits validChars = validChars.strip("oO01l") return string.join([random.choice(validChars) for x in range(size)],"") def get_pair_from_url(base_url): return db.select('passwords', where='base_url LIKE "%'+base_url+'%"', order='id DESC') def get_generated_from_url(base_url): gen = db.select('generated', where='base_url LIKE "%'+base_url+'%"', order='id DESC') while not len(gen) > 0: db.insert('generated', base_url = base_url, password = mkpass()) gen = db.select('generated', where='base_url LIKE "%'+base_url+'%"') return gen class index: def GET(self, method): if method == 'get': if web.input(): i = web.input() selected = get_pair_from_url(i.base_url) if len(selected) > 0: pairs = '
Sorry buddy, you're outta luck
" body = 'need input.
') if method == 'new': i = web.input() f = create() body = [] body.append('' + generated[0].password + '
\n') body.append(''+get_generated_from_url(i.base_url)[0].password+'
' return render.page('Generated', body) else: return render.page('mySecrets', 'These are mySecrets. There is nothing for you here.
') class api: def GET(self, method): if method == "list": tmp = '' for pair in db.select('passwords'): tmp += pair['base_url']+','+pair['username']+','+pair['password']+'\n' return tmp if method == "get": i = web.input() base_url = i.base_url pairs = db.select('passwords', where='`base_url`="'+base_url+'"') tmp = '' for pair in pairs: tmp += pair.username+','+pair.password+'\n' return tmp else: return 'mySecrets API ' + method def POST(self, method): i = web.input() n = db.insert('passwords', username=i.username, password=i.password, \ base_url=i.base_url) body = ''+i.username+', '+i.password+'
' return render.page('Created', body) if __name__ == "__main__": web.wsgi.runwsgi = lambda func, addr=None: web.wsgi.runfcgi(func, addr) app.run()