27 lines
772 B
Python
27 lines
772 B
Python
from flask import url_for, session
|
|
from .models import Posts, Threads
|
|
from .auth import is_logged_in
|
|
|
|
def get_post_url(post_id, _anchor=False, external=False):
|
|
post = Posts.find({'id': post_id})
|
|
if not post:
|
|
return ''
|
|
|
|
thread = Threads.find({'id': post.thread_id})
|
|
|
|
anchor = None if not _anchor else f'post-{post_id}'
|
|
|
|
return url_for('threads.thread_by_id', thread_id=thread.id, after=post_id, _external=external, _anchor=anchor)
|
|
|
|
def dict_to_query_string(d) -> str:
|
|
return '?' + '&'.join([f'{key}={str(value)}' for key, value in d.items()])
|
|
|
|
def get_csrf_token():
|
|
if not is_logged_in():
|
|
return ''
|
|
|
|
return session.get('csrf', '')
|
|
|
|
def csrf_input():
|
|
return f'<input type="hidden" name="csrf" value="{get_csrf_token()}">'
|