def index():
    """
    example action using the internationalization operator T and flash
    rendered by views/default/index.html or views/generic.html
    """
    form=FORM(T('Search:'),
              INPUT( _name='filesearch', requires=IS_LENGTH(minsize=3)),
              INPUT(_type='submit'))

    filesearch=None
    if form.accepts(request,session):
        filesearch=request.vars['filesearch']
        if not request.env.web2py_runtime_gae:
            rows= db(db.ddl.filename.contains(filesearch.replace("%", "_").replace(" ","%"))).select(orderby=db.ddl.filename, limitby=(0,100))
        else:
#            query = like_query(filesearch.replace(" ","%"), db.ddl.filename)
#            rows = db(query).select()
            from google.appengine.ext.db import GqlQuery
            query = filesearch
            queryEnd = query+"\xEF\xBF\xBD".decode('utf-8')
            rows = GqlQuery("SELECT * FROM ddl WHERE filename>=:1 AND filename<=:2 ORDER BY filename DESC", query, queryEnd)
    else:
        rows= db(db.ddl.id>0).select(orderby=~db.ddl.date_added, limitby=(0,20))
    ddlz=[]

    for row in rows:
        if not request.env.web2py_runtime_gae:
            date_added=row['date_added']
        else:
            date_added=row.date_added
        difference = datetime.now()-date_added
        weeks, days = divmod(difference.days, 7)
        minutes, seconds = divmod(difference.seconds, 60)
        hours, minutes = divmod(minutes, 60)
        if not request.env.web2py_runtime_gae:
            row['timedelta']= getTimeDelta(weeks, days, hours, minutes, seconds)
            row['nickname']= row['uploader']['nickname']
        else:
            row.timedelta= getTimeDelta(weeks, days, hours, minutes, seconds)
            if type(row.uploader) is long:
                row.nickname = row.uploader
                row.id = 0
            else:
                row.nickname= row.uploader.nickname
                
        ddlz.append(row)

    loggedIn = True if auth.is_logged_in() else False

    return dict(message=T('Hello World'),ddlz=ddlz, form=form, filesearch=filesearch, loggedIn=loggedIn)
def how_to_upload():
    allowed= False
    tuto=dict()
    if auth.user.is_uploader:
        tuto = dict()
        tuto['start']= T("Start DDLagoon Uploader.")
        tuto['login']= T("Login with your username and password.")
        tuto['go_to_profile_pre']= T('Go to your')
        tuto['profile']= T('profile')
        tuto['go_to_profile_suf']= T('to get your API key.')
        tuto['go_to_settings']= T('Go to the settings tab.')
        allowed=True
    loggedIn = True if auth.is_logged_in() else False
    return dict(tuto=tuto, allowed=allowed, loggedIn=loggedIn)
def help():
    issuesUrl= "https://bitbucket.org/DDLagoon/ddlagoon/issues"
    wikiUrl=   "https://bitbucket.org/DDLagoon/ddlagoon/wiki"
    loggedIn = True if auth.is_logged_in() else False
    return dict(issuesUrl=issuesUrl, wikiUrl=wikiUrl, loggedIn=loggedIn)
def howto():
    win32= "http://www.mediafire.com/?hbuvrbrwh12fhbv"
    win64= "http://www.mediafire.com/?carxg6ord5v5bfy"
    amd64= "http://www.mediafire.com/?p4mzpscyd93uur8"
    loggedIn = True if auth.is_logged_in() else False
    return dict(win32=win32, win64=win64, amd64=amd64, version=__version__, loggedIn=loggedIn)