def user_page(user_page_name):
    username = request.get_cookie('login')
    if not sm.validate_session():
        redirect('/')
    if not is_username_busy(user_page_name):
        abort(400, "User doesn't exist")
    return {
        'login': username,
        'user_page_name': user_page_name,
        'articles': get_article_titles_by_login(user_page_name,
                                                get_drafts=False)
    }
def create_article_func():
    if not sm.validate_session():
        redirect('/')
    user_page_name = request.GET.get('user', '')
    if user_page_name != '':
        if not is_username_busy(user_page_name):
            abort(400, "Suggested user doesn't exist")
    username = request.get_cookie('login')
    return {
        'user_page_name': user_page_name,
        'login': username,
    }
def register():
    username = request.forms.get('username')
    password = request.forms.getunicode('password')
    if username is None or password is None:
        abort(400, "Request form doesn't contain username or password")
    if not is_username_valid(username) or not is_password_valid(password):
        abort(400, "Incorrect login or password")
    if is_username_busy(username):
        abort(400, "Username is busy")
    create_user(username, password)
    sm.create_session(username)
    redirect('/')
def post_article():
    if not sm.validate_session():
        abort(400, "Invalid session")
    title = request.forms.getunicode('title')
    content = request.forms.getunicode('content')
    username = request.get_cookie('login')
    user_suggestion = request.GET.get('user', None)
    if user_suggestion is not None:
        if not is_username_busy(user_suggestion):
            abort(400, "Suggested user doesn't exist")
    if not create_article(title, content, username, user_suggestion):
        abort(400, "Incorrect article content or title")
    if user_suggestion is None:
        redirect('/my-articles')
    else:
        redirect('/user/' + user_suggestion)
def exist(username):
    return json.dumps(is_username_busy(username))