37 lines
884 B
Python
37 lines
884 B
Python
from flask import Blueprint, Response
|
|
from typing import Dict, Any
|
|
|
|
from bemani.data import News
|
|
from bemani.frontend.app import loginrequired, render_react
|
|
from bemani.frontend.templates import templates_location
|
|
from bemani.frontend.static import static_location
|
|
from bemani.frontend.types import g
|
|
|
|
|
|
home_pages = Blueprint(
|
|
"home_pages",
|
|
__name__,
|
|
template_folder=templates_location,
|
|
static_folder=static_location,
|
|
)
|
|
|
|
|
|
def format_news(news: News) -> Dict[str, Any]:
|
|
return {
|
|
"timestamp": news.timestamp,
|
|
"title": news.title,
|
|
"body": news.body,
|
|
}
|
|
|
|
|
|
@home_pages.route("/")
|
|
@loginrequired
|
|
def viewhome() -> Response:
|
|
return render_react(
|
|
g.config.get("name", "e-AMUSEMENT Network"),
|
|
"home.react.js",
|
|
{
|
|
"news": [format_news(news) for news in g.data.local.network.get_all_news()],
|
|
},
|
|
)
|