lots more functionality, very usable, very ugly
This commit is contained in:
parent
a577e52f1a
commit
b17db63a92
1 changed files with 153 additions and 103 deletions
64
mysecrets.py
64
mysecrets.py
|
@ -1,3 +1,7 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
import string
|
||||
import random
|
||||
import web
|
||||
from web import form
|
||||
|
||||
|
@ -19,13 +23,31 @@ create = form.Form(
|
|||
form.Password('password'),
|
||||
)
|
||||
|
||||
def mkpass(size=10):
|
||||
validChars = string.ascii_letters + string.digits
|
||||
validChars = validChars.strip("oO0")
|
||||
|
||||
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+'%"')
|
||||
|
||||
def get_generated_from_url(base_url):
|
||||
gen = db.select('generated', where='base_url LIKE "%'+base_url+'%"')
|
||||
|
||||
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 = db.select('passwords', where='`base_url`="'+i.base_url+'"')
|
||||
selected = get_pair_from_url(i.base_url)
|
||||
|
||||
if len(selected) > 0:
|
||||
pairs = '<ul>'
|
||||
|
@ -44,13 +66,30 @@ class index:
|
|||
return render.page('get','<p>need input.</p>')
|
||||
|
||||
if method == 'new':
|
||||
|
||||
i = web.input()
|
||||
|
||||
f = create()
|
||||
|
||||
body = '<h1>Create</h1>\n<form class="form" method="get" \
|
||||
action="/secret/create">\n'+\
|
||||
f.render()+ '\n<input type="submit" name="submit" id="submit"/></form>'
|
||||
body = []
|
||||
|
||||
return render.page('create',body)
|
||||
body.append('<h1>'+i.base_url+'</h1>\n')
|
||||
|
||||
selected = get_pair_from_url(i.base_url)
|
||||
generated = get_generated_from_url(i.base_url)
|
||||
|
||||
if selected:
|
||||
body.append('<p>Existing: \n')
|
||||
for pair in selected:
|
||||
body.append('('+pair.username+', '+pair.password+')\n')
|
||||
body.append('</p>')
|
||||
|
||||
body.append('<p>Generated: ' + generated[0].password + '</p>')
|
||||
|
||||
body.append('<form class="form" method="get" action="/secret/create">\n'+ \
|
||||
f.render()+ '\n<input type="submit" name="submit" id="submit"/></form>')
|
||||
|
||||
return render.page('create',''.join(body))
|
||||
|
||||
|
||||
if method == 'create':
|
||||
|
@ -58,11 +97,21 @@ class index:
|
|||
n = db.insert('passwords', username=i.username, password=i.password, \
|
||||
base_url=i.base_url)
|
||||
|
||||
body = '<h1>'+i.base_url+'</h1><p>'+i.username+', '+i.password+'</p>'
|
||||
selected = get_pair_from_url(i.base_url)
|
||||
|
||||
body = '<h1>'+i.base_url+'</h1><p>'+selected[0].username+', '+selected[0].password+'</p>'
|
||||
|
||||
return render.page('Created', body)
|
||||
|
||||
|
||||
if method == 'generate':
|
||||
i = web.input()
|
||||
|
||||
body = '<h1>'+i.base_url+'</h1>\n<p> '+get_generated_from_url(i.base_url)[0].password+'</p>'
|
||||
|
||||
return render.page('Generated', body)
|
||||
|
||||
|
||||
else:
|
||||
return render.page('mySecrets', '<p>These are mySecrets. There is nothing for you here.</p>')
|
||||
|
||||
|
@ -100,4 +149,5 @@ class api:
|
|||
|
||||
|
||||
if __name__ == "__main__":
|
||||
app.run()
|
||||
web.wsgi.runwsgi = lambda func, addr=None: web.wsgi.runfcgi(func, addr)
|
||||
app.run()
|
||||
|
|
Reference in a new issue