Files
ALPHA-TRAIN2/services/rusgram/content/content.py
T
bobiqq c231be0094
build-and-push / detect (push) Successful in 7s
build-and-push / build (${{ fromJSON(needs.detect.outputs.services) }}) (push) Failing after 3m33s
services
2026-08-26 11:04:23 +03:00

50 lines
2.2 KiB
Python
Executable File

#!/usr/bin/python3
from flask import Flask, render_template, request, redirect
import requests as r
app = Flask(__name__, template_folder='files')
database_node_port = 5002
content_node_port = 5004
database_node = "database:" + str(database_node_port)
@app.route('/<path:path>', methods=["GET", "POST"])
def route(path):
def get_login():
if "session" not in request.cookies:
return None
username, password = request.cookies["session"].split("||")
correct_password = r.get(f"http://{database_node}/users/{username}/password").json()["data"]
if correct_password != password:
return None
return username
if path == "index.html":
if (username := get_login()) is None:
return redirect("/login.html", code=302)
imgs = list()
for i in range(1, 17):
imgs.append(r.get(f"http://{database_node}/images/{i}").json()["data"])
imgs[-1]["id"] = str(i).zfill(2)
user = dict()
first_name_resp = r.get(f"http://{database_node}/users/{username}/first_name")
user["first_name"] = first_name_resp.json()["data"] if first_name_resp.status_code == 200 else ""
second_name_resp = r.get(f"http://{database_node}/users/{username}/second_name")
user["second_name"] = second_name_resp.json()["data"] if second_name_resp.status_code == 200 else ""
email_resp = r.get(f"http://{database_node}/users/{username}/email")
user["email"] = email_resp.json()["data"] if email_resp.status_code == 200 else ""
msg_resp = r.get(f"http://{database_node}/users/{username}/msg")
user["msg"] = msg_resp.json()["data"] if msg_resp.status_code == 200 else ""
return render_template("index.html", data=imgs, user=user)
elif path == "specific.html":
if get_login() is None:
return redirect("/login.html", code=302)
img_id = request.args.get('img')
img = r.get(f"http://{database_node}/images/{img_id}").json()["data"]
img["id"] = img_id
return render_template("specific.html", img=img)
else:
return render_template(path)
if __name__ == '__main__':
app.run(host="0.0.0.0", port=content_node_port)