This repository has been archived on 2026-03-15. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files

60 lines
1.5 KiB
Python

from flask import Blueprint, render_template, redirect, url_for, request, abort
from flask_login import login_required, current_user
from app.models.game import (
build_board_rows,
get_game_for_user,
group_move_pairs,
list_games_for_user,
)
from app.routes.friends import _friends_page_data
main_bp = Blueprint("main", __name__)
@main_bp.route("/", methods=["GET", "POST"])
def index():
if current_user.is_authenticated:
return redirect(url_for("main.home"))
return render_template("index.html")
@main_bp.route("/home", methods=["GET", "POST"])
@login_required
def home():
return render_template("home.html")
@main_bp.route("/play", methods=["GET"])
@login_required
def play():
return render_template("play.html")
@main_bp.route("/games", methods=["GET"])
@login_required
def games_history():
games = list_games_for_user(current_user.id)
return render_template("games.html", games=games)
@main_bp.route("/games/<int:game_id>", methods=["GET"])
@login_required
def game_detail(game_id: int):
game = get_game_for_user(game_id, current_user.id)
if not game:
abort(404)
return render_template(
"game_detail.html",
game=game,
board_rows=build_board_rows(game.final_fen),
move_pairs=group_move_pairs(game.move_history),
)
#todo: decide if this should get moved to the friends.py file
@main_bp.route("/friends", methods=["GET"])
@login_required
def friends():
data = _friends_page_data(request.args.get("q", ""))
return render_template("friends.html", **data)