From a577e52f1ac5bd4b7e6243f1153b5e0742086c15 Mon Sep 17 00:00:00 2001 From: Andrew Davidson Date: Mon, 27 Feb 2012 22:12:05 -0800 Subject: [PATCH] functional framework in place --- mysecrets.py | 90 +++++++++++++++++++++++++++++++++------------ static/create.js | 1 + static/get.js | 1 + templates/page.html | 10 +++++ 4 files changed, 79 insertions(+), 23 deletions(-) create mode 100644 static/create.js create mode 100644 static/get.js create mode 100644 templates/page.html diff --git a/mysecrets.py b/mysecrets.py index 8685593..9b6ead7 100755 --- a/mysecrets.py +++ b/mysecrets.py @@ -1,26 +1,70 @@ import web +from web import form db = web.database(dbn='mysql', user='mysecrets', pw='horsebatteries', db='mysecrets') - + urls = ( - '/secret/', 'index', - '/secret/api/(.*)', 'api' + '/secret/api/(.*)', 'api', + '/secret/(.*)', 'index' ) app = web.application(urls, globals()) -class index: - def GET(self): - return '''\ - - - mySecrets - - -These are mySecrets. There is nothing for you here. - -''' +render = web.template.render('templates/') + +create = form.Form( + form.Textbox('base_url', description="domain"), + form.Textbox('username'), + form.Password('password'), +) + + +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+'"') + + if len(selected) > 0: + pairs = '' + + else: + pairs = "

Sorry buddy, you're outta luck

" + + body = '

'+i.base_url+'

\n'+pairs + + return render.page(i.base_url, body) + + else: + return render.page('get','

need input.

') + + if method == 'new': + f = create() + + body = '

Create

\n
\n'+\ + f.render()+ '\n
' + + return render.page('create',body) + + + if method == 'create': + i = web.input() + n = db.insert('passwords', username=i.username, password=i.password, \ + base_url=i.base_url) + + body = '

'+i.base_url+'

'+i.username+', '+i.password+'

' + + return render.page('Created', body) + + + else: + return render.page('mySecrets', '

These are mySecrets. There is nothing for you here.

') class api: def GET(self, method): @@ -38,7 +82,7 @@ class api: tmp = '' for pair in pairs: - tmp += pair.username+','+pair.password+'\n' + tmp += pair.username+','+pair.password+'\n' return tmp @@ -46,14 +90,14 @@ class api: return 'mySecrets API ' + method def POST(self, method): - if method == "create": - i = web.input() - n = db.insert('passwords', username=i.username, password=i.password, \ - base_url=i.base_url) - return 'Created.' - else: - return 'No method.' + i = web.input() + n = db.insert('passwords', username=i.username, password=i.password, \ + base_url=i.base_url) + + body = '

'+i.base_url+'

'+i.username+', '+i.password+'

' + + return render.page('Created', body) if __name__ == "__main__": - app.run() + app.run() diff --git a/static/create.js b/static/create.js new file mode 100644 index 0000000..64c650b --- /dev/null +++ b/static/create.js @@ -0,0 +1 @@ +// create.js \ No newline at end of file diff --git a/static/get.js b/static/get.js new file mode 100644 index 0000000..2a95b41 --- /dev/null +++ b/static/get.js @@ -0,0 +1 @@ +// get.js \ No newline at end of file diff --git a/templates/page.html b/templates/page.html new file mode 100644 index 0000000..3808862 --- /dev/null +++ b/templates/page.html @@ -0,0 +1,10 @@ +$def with (title, body) + + + + $title + + +$:body + + \ No newline at end of file