37 lines
883 B
Python
37 lines
883 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()],
|
|
}
|
|
)
|