def post_username():
    username = request.forms.get('username')
    if username: username = username.strip()

    if not username:
        if is_XHR():
            return render_json({"error": "need valid username"}, 409)
        else:
            redirect("/")

    if UserProcess.is_still_processing(username):
        if is_XHR():
            return render_json({
                "update": "/get-update/%s" % username,
                "ws_update": "ws://%s/ws/%s" % (HOST, username)
            })
        else:
            redirect("/await/%s" % username)
    UserProcess(username).get_new_recommendations()

    if is_XHR():
        return render_json({
            "update": "/get-update/%s" % username,
            "ws_update": "ws://%s/ws/%s" % (HOST, username)
        })

    redirect("/await/%s" % username)
def show_more(username, topic, offset, past_album):
    results = UserProcess(username).retrieve_results_for_topic(
        int(topic), int(offset), unicode(past_album.decode("utf-8")))
    if is_XHR():
        return render("show-more-xhr",
                      username=username,
                      topic=topic,
                      results=results,
                      nextoffset=int(offset) + len(results))
    return render("show-more",
                  username=username,
                  topic=topic,
                  results=results,
                  nextoffset=int(offset) + len(results))
def show_results(username):
    if UserProcess.is_still_processing(username):
        redirect("/await/%s" % username)
    results = UserProcess(username).retrieve_results()
    return render("results", username=username, results=results)