def route_register(): lang = Language(get_user_lang(request.headers, current_user)) if current_user.is_authenticated: return redirect(url_for("route_feed")) error, oldform = None, None if request.method == "POST": lform = RegisterForm(request.form) if lform.validate(): user_obj, error = register(lform.username.data, lform.password.data, lform.verify.data) if user_obj: login_user(user_obj, remember=request.form.get("remember", False)) return redirect(url_for("route_feed")) if error: error = lang.tr(error) else: oldform = lform nform = RegisterForm().localized(lang) if oldform == None: oldform = nform return render_template("auth/register.html", lang=lang, form=nform, oldform=oldform, error=error)
def route_report_msg(): lang = Language(get_user_lang(request.headers, current_user)) if current_user.is_banned(): return render_template("errors/banned.html", lang=lang) lform = ReportPostForm(request.form).localized(lang) nform = ReportPostForm().localized(lang) if request.method == "POST": if lform.validate(): error = handle_message_report(current_user.get_id(), request.form) if error: return render_template("message/reportmsg.html", lang=lang, form=nform, error=lang.tr(error)) else: return render_template("message/reportmsg.html", lang=lang, success=True, error=None) else: error = lang.tr("reportmsg.error.invalidform") msg_id = request.args.get("mid", default=None) try: msg_id = int(msg_id) except: return abort(400) return render_template("message/reportmsg.html", lang=lang, form=nform, msg_id=msg_id, error=None)
def route_new(): lang = Language(get_user_lang(request.headers, current_user)) if current_user.is_banned(): return render_template("errors/banned.html", lang=lang) error, oldform = None, None if request.method == "POST": lform = NewPostForm(request.form) if lform.validate(): (postid, error) = new_message(current_user.get_id(), request.form) if error: error = lang.tr(error) else: return redirect( url_for("route_message", username=current_user.get_user_name(), postid=postid)) else: oldform = lform test_reply_id = request.args.get("reply", default=None) try: msg, reply_id = get_message_by_id(int(test_reply_id)), test_reply_id except: msg, reply_id = None, "" nform = NewPostForm().localized(lang) if oldform == None: oldform = nform return render_template("write/new.html", lang=lang, form=nform, oldform=oldform, reply=render_message(lang, msg), reply_id=reply_id, error=error)
def route_report_user(): lang = Language(get_user_lang(request.headers, current_user)) if current_user.is_banned(): return render_template("errors/banned.html", lang=lang) lform = ReportUserForm(request.form).localized(lang) nform = ReportUserForm().localized(lang) if request.method == "POST": if lform.validate(): error = handle_user_report(current_user.get_id(), request.form) if error: return render_template("profile/reportuser.html", lang=lang, form=nform, error=error) else: return render_template("profile/reportuser.html", lang=lang, success=True, error=None) else: error = lang.tr("reportuser.error.invalidform") user_id = request.args.get("uid", default=None) try: user_id = int(user_id) except: return abort(400) return render_template("profile/reportuser.html", lang=lang, form=nform, user_id=user_id, error=None)
def route_settings(): lang = Language(get_user_lang(request.headers, current_user)) if current_user.is_banned(): return render_template("errors/banned.html", lang=lang) error, oldform, success = None, None, False if request.method == "POST": lform = SettingsForm(request.form).localized(lang) if lform.validate(): error = handle_settings(current_user.get_id(), request.form) if error: error = lang.tr(error) else: success = True else: oldform = lform nform = SettingsForm(obj=populate_dict( { "username": current_user.get_user_name(), "displayname": current_user.get_display_name(), "bio": current_user.get_user_bio(), "language": current_user.get_language(), "privatemessages": current_user.are_messages_private(), "privatefollows": current_user.are_follows_private(), "privatelikes": current_user.are_likes_private() })).localized(lang) if oldform == None: oldform = nform return render_template("auth/settings.html", lang=lang, form=nform, deleteform=DeleteAccountForm().localized(lang), oldform=oldform, error=error, success=success)
def route_message(username, postid): lang = Language(get_user_lang(request.headers, current_user)) if current_user.is_authenticated and current_user.is_banned(): return render_template("errors/banned.html", lang=lang) user = get_user_by_name(username) if user == None: return abort(404) if user.is_banned() and (not current_user.is_authenticated or not current_user.has_admin_rights()): return redirect(url_for("route_profile", username=username)) msg = get_message_by_id(postid) if msg == None: return abort(404) if user.get_id() != msg.get_author_id(): return abort(404) reply = None if msg.reply != None: reply = get_message_by_id(msg.reply) return render_template( "message/viewmessage.html", lang=lang, user=user, msg=msg, reply=reply, reply_id=msg.reply, is_reply=msg.is_reply, render_message=bind1(render_message, lang), username=username, postid=postid, important_replies=msg.get_most_important_message_replies(current_user))
def route_message_replies(username, postid): lang = Language(get_user_lang(request.headers, current_user)) if current_user.is_authenticated and current_user.is_banned(): return render_template("errors/banned.html", lang=lang) user = get_user_by_name(username) if user == None: return abort(404) if user.is_banned() and (not current_user.is_authenticated or not current_user.has_admin_rights()): return redirect(url_for("route_profile", username=username)) msg = get_message_by_id(postid) if msg == None: return abort(404) msgs, next_page, prev_page = compute_pages(request.args, get_message_replies, msg, current_user) return render_template("message/viewreplies.html", lang=lang, user=user, msgs=msgs, render_message=bind1(render_message, lang), prev_page=prev_page, next_page=next_page, has_before="b" in request.args or "a" in request.args, username=username, postid=postid)
def route_notifications(): lang = Language(get_user_lang(request.headers, current_user)) if current_user.is_authenticated and current_user.is_banned(): return render_template("errors/banned.html", lang=lang) return render_template("notification/notifications.html", lang=lang, notifs=current_user.get_notifications(False), render_notification=bind1(render_notification, lang))
def route_msg_edit(): lang = Language(get_user_lang(request.headers, current_user)) if current_user.is_authenticated and current_user.is_banned(): return render_template("errors/banned.html", lang=lang) error, oldform = None, None if request.method == "POST": lform = EditPostForm(request.form) if lform.validate(): error = edit_message(current_user.get_id(), request.form) if error: error = lang.tr(error) else: return redirect( url_for("route_message", username=current_user.get_user_name(), postid=request.form["msg"])) else: oldform = lform test_msg_id = request.args.get("msg", default=None) try: msg = get_message_by_id(int(test_msg_id)) if msg.get_author_id() != current_user.get_id(): return abort(403) except: return redirect(url_for("route_feed")) nform = EditPostForm(obj=populate_dict({ "contents": msg.get_text(), "link": msg.get_link() })).localized(lang) if oldform == None: oldform = nform return render_template("write/edit.html", lang=lang, form=nform, oldform=oldform, msg=msg, error=error, render_message=bind1(render_message, lang))
def route_admin_msgreports(): lang = Language(get_user_lang(request.headers, current_user)) if not current_user.has_admin_rights() or current_user.is_banned(): return render_template("errors/notadmin.html", lang=lang) reports, next_page, prev_page = compute_pages(request.args, get_message_reports, current_user) return render_template("admin/admin_msgreports.html", lang=lang, reports=reports, render_report=bind1(render_message_report, lang), prev_page=prev_page, next_page=next_page, has_before="b" in request.args or "a" in request.args)
def route_feed(): # ð’€ð’€ð’Šºð’‰€ lang = Language(get_user_lang(request.headers, current_user)) if not current_user.is_authenticated: return redirect(url_for("route_login")) if current_user.is_authenticated and current_user.is_banned(): return render_template("errors/banned.html", lang=lang) msgs, next_page, prev_page = compute_pages(request.args, get_feed_from_user, current_user) return render_template("feed.html", lang=lang, msgs=msgs, render_message=bind1(render_message, lang), prev_page=prev_page, next_page=next_page, has_before="b" in request.args or "a" in request.args)
def route_profile(username): lang = Language(get_user_lang(request.headers, current_user)) if current_user.is_authenticated and current_user.is_banned(): return render_template("errors/banned.html", lang=lang) user = get_user_by_name(username) if user == None: return abort(404) msgs, next_page, prev_page = compute_pages(request.args, get_user_messages, user, current_user) return render_template("profile/profile.html", lang=lang, user=user, msgs=msgs, render_message=bind1(render_message, lang), prev_page=prev_page, next_page=next_page, has_before="b" in request.args or "a" in request.args)
def route_profile_followers(username): lang = Language(get_user_lang(request.headers, current_user)) if current_user.is_authenticated and current_user.is_banned(): return render_template("errors/banned.html", lang=lang) user = get_user_by_name(username) if user == None: return abort(404) if user.is_banned() and (not current_user.is_authenticated or not current_user.has_admin_rights()): return redirect(url_for("route_profile", username=username)) users, next_page, prev_page = compute_pages(request.args, get_followers, user) return render_template("profile/profile_followers.html", lang=lang, user=user, users=users, render_user=bind1(render_user, lang), prev_page=prev_page, next_page=next_page, has_before="b" in request.args or "a" in request.args)
def route_search_user(): lang = Language(get_user_lang(request.headers, current_user)) if current_user.is_authenticated and current_user.is_banned(): return render_template("errors/banned.html", lang=lang) if request.args.get("q", None): q = request.args.get("q")[:512] users, next_page, prev_page = compute_pages(request.args, search_for_users, current_user, q) return render_template("search/searchuser_results.html", lang=lang, users=users, render_user=bind1(render_user, lang), q=q, prev_page=prev_page, next_page=next_page, has_before="b" in request.args or "a" in request.args) return render_template( "search/search.html", lang=lang, form=SearchMessageForm(csrf_enabled=False).localized(lang), formuser=SearchUserForm(csrf_enabled=False).localized(lang))
def page_forbidden(e): lang = Language(get_user_lang(request.headers, current_user)) return render_template("errors/403.html", lang=lang), 403
def route_admin(): lang = Language(get_user_lang(request.headers, current_user)) if not current_user.has_admin_rights() or current_user.is_banned(): return render_template("errors/notadmin.html", lang=lang) return render_template("admin/admin.html", lang=lang)
def page_not_found(e): lang = Language(get_user_lang(request.headers, current_user)) return render_template("errors/404.html", lang=lang), 404