threads rising
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Simple_Not
2024-02-01 03:26:12 +10:00
parent f9bbd5e6af
commit fbb586b56c
5 changed files with 151 additions and 11 deletions

63
app.py
View File

@@ -62,7 +62,61 @@ def homepage():
board_list = [ k['_key'] for k in boards0]
return render_template("main-page.html", host_id=docker_short_id, boards=board_list)
#### TODO если борды нет, то возвращать 404 мемную
#### TODO если треда нет, то возвращать 404 мемную
#### DONE route :: /{board}/
@app.route('/<board>')
def board_posts(board=None):
postos = db.collection('posts')
postos = [ p for p in postos if p.get('root_post') == True and p.get('board') == board ]
postos = sorted(postos, key=lambda posto: int(posto['_key']), reverse=False)
return render_template("board-posts.html", host_id=docker_short_id, postos=postos, target_post_id=None)
#### TODO route :: /{board}/{thread}/
#### TODO убрать отсюда чужие рут-потсы
@app.route("/<board>/<int:target_post_id>")
def thread_posts(board=None, target_post_id=None):
## взять рут-пост
## взять всех его детей
# postos = db.collection('posts')
# postos = [ p for p in postos]
# postos = sorted(postos, key=lambda posto: int(posto['_key']), reverse=False)
cursor = db.aql.execute(
f"""FOR ppp IN posts
FILTER ppp.root_post == True and ppp._key == "{target_post_id}"
FOR v IN 1 OUTBOUND ppp post_parents RETURN v"""
)
postos = [ ]
while not cursor.empty(): # Pop until nothing is left on the cursor.
postos.append(cursor.pop())
cursor = db.aql.execute(
f'RETURN DOCUMENT("posts/{target_post_id}")'
)
while not cursor.empty(): # Pop until nothing is left on the cursor.
postos.append(cursor.pop())
postos = [ p for p in postos ]
postos = sorted(postos, key=lambda posto: int(posto['_key']), reverse=False)
if not target_post_id:
target_post_id = postos[0]['_key']
return render_template("interactive-posts.html", host_id=docker_short_id, postos=postos, target_post_id=target_post_id)
#### TODO route :: /{board}/{thread}/create_thread/
#### TODO route :: /{board}/{thread}/answer_post/
#### TODO route :: /{board}/{thread}/post_to_another_post/
@app.route('/db_posts')
@app.route("/db_posts/<target_post_id>")
@@ -72,6 +126,11 @@ def page_posts_from_db(target_post_id=None):
postos = [ p for p in postos]
postos = sorted(postos, key=lambda posto: int(posto['_key']), reverse=False)
for p in postos:
#if p['root_post']:
print(p)
if not target_post_id:
target_post_id = postos[0]['_key']
@@ -82,7 +141,7 @@ def page_posts_from_db(target_post_id=None):
def answer_post(target_post_id):
postos = db.collection('posts')
postos = [ p for p in postos]
postos = [ p for p in postos ]
postos = sorted(postos, key=lambda posto: int(posto['_key']), reverse=False)
if not target_post_id: