from typing import List import gradio as gr MEDIA_PATH = "medias/" MEDIA_FILE_TYPE = ".png" def get_content(file_name: str) -> str: with open(file_name, "r", encoding="utf-8") as file: content = file.read() return "
" + content def get_player_partners(player_info: gr.State) -> List[str]: return [ f"{MEDIA_PATH}{partner}{MEDIA_FILE_TYPE}" for partner in player_info["partners"] ] def get_player_nickname(player_info: gr.State) -> str: player_nickname = player_info["player_nickname"] if player_nickname: return f'# 光束守護者 - {player_info["player_nickname"]}' else: return "# 光束守護者" def get_player_badges(player_info: gr.State) -> List[str]: return [f"{MEDIA_PATH}{badge}{MEDIA_FILE_TYPE}" for badge in player_info["badges"]] def get_player_adventure_logs(player_info: gr.State) -> List[str]: log_template = """

{player_log}

""" return [ log_template.format(player_log=player_log) for player_log in player_info["adventure_logs"] ] def get_player_adventure_logs_html(player_info: gr.State) -> str: adventure_logs = "".join(get_player_adventure_logs(player_info)) template_content = get_content("htmls/adventure_template.html") return template_content.replace("{logs}", adventure_logs)