#!/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('/', 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)