#!/usr/bin/python
# -*- coding: utf8 -*-
# Soubor:  forms.py
# Datum:   07.02.2014 11:59
# Autor:   Marek Nožka, nozka <@t> spseol <d.t> cz
# Licence: GNU/GPL 
# Úloha:   Bottle a formuláře
############################################################################

from bottle import run, route, get, post, request, redirect
import subprocess

# přesměrování
@route('/')
def redir():
    redirect("/login")

@get('/login') # nebo @route('/login')
def login():
    print '---------------------'
    print request.method
    print '---------------------'
    return '''
        <form action="/login" method="post">
            Username: <input name="username" type="text" />
            Password: <input name="password" type="password" />
            <input value="Login" type="submit" />
        </form>
    '''

@post('/login') # nebo @route('/login', method='POST')
def do_login():
    print '---------------------'
    print request.method
#    print dir(request.params)
    for klic in  request.params.keys():
        print klic,'->',request.params[klic]
    print '---------------------'
    username = request.forms.get('username')
    password = request.forms.get('password')
    if 'abcd' in password :
        return """
    <h1>{0}</h1>
    <p>Hurá! Huráááá. Uhodl jsi</p>
    """.format(username)
    else :
        return "<h1>Ne! Ne! Ne!!!</h1><p>Špatné heslo :-P</p>"


@route('/pwgen')
def pwgen():
    h='<h1>Zapamatovatelné heslo?</h1>\n'
    form='''<form method="get">
<p>
    Délka hesla (od 5 do 40): <input name="length" type="text" /><br />
    <input value="goo" type="submit" />
</p>
</form>
'''

    length = request.query.length
    if length :
        try :
            length=int(length)
            length= 8 if length<5 or length>40 else length
        except :
            length=8
        pswd= subprocess.check_output(['pwgen','-Ccn',str(length), ])
        return h+'\n<p>Délka '+str(length)+'</p>\n<pre style="font-size:large;">\n'+pswd+'</pre>\n'+form
    else : 
        return h+form

##########################################################################
run(host='localhost', port=8090, debug=True, reloader=True)
