Spaces:
Running
Running
File size: 3,294 Bytes
62b3eea 273f76c 5784cf3 273f76c 62b3eea de7f21d 273f76c de7f21d 8e9bd24 d79f5f2 273f76c 11254d8 57e2032 11254d8 57e2032 11254d8 57e2032 11254d8 57e2032 11254d8 273f76c b002f06 11254d8 4427f36 11254d8 b002f06 11254d8 b002f06 11254d8 273f76c 013e105 de7f21d 013e105 11254d8 273f76c 2e603d5 273f76c d79f5f2 4ad00b8 d79f5f2 35ad3f3 d79f5f2 5784cf3 4f341ae 5358090 d79f5f2 273f76c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
import json
import gradio as gr
from theme import Seafoam
from utils.utils import (
get_content,
get_player_partners,
get_player_badges,
get_player_achievement_logs_html,
)
seafoam = Seafoam()
def get_player_info(player_backend_user_id):
with open("data.json", "r", encoding="utf-8") as file:
player_info = json.load(file)
return player_info[player_backend_user_id]
# start of gradio interface
with gr.Blocks(theme=seafoam, css=get_content("css/style.css")) as demo:
player_info = gr.State()
with gr.Row():
with gr.Column(
scale=1,
):
pet_description = gr.Markdown("# 夥伴", elem_id="pet_avatar_description")
pet_gallery = gr.Gallery(
[],
label="夥伴",
preview=False,
elem_id="pet_gallery",
columns=30,
height=200,
)
badge_description = gr.Markdown("# 徽章", elem_id="badge_avatar_description")
badge_gallery = gr.Gallery(
[],
label="徽章",
preview=False,
elem_id="badge_gallery",
columns=30,
height=200,
)
with gr.Column(scale=1, elem_id="player_avatar_container"):
avatar = gr.Gallery(
["medias/avatar.png", "medias/avatar2.png"],
preview=True,
elem_id="player_avatar",
)
avatar_description = gr.Markdown(
"# 光束守護者", elem_id="player_avatar_description"
)
with gr.Column(scale=1):
with gr.Column(elem_id="adventure_container"):
adventure_description = gr.Markdown("# 冒險階段", elem_id="adventure_description")
adverture = gr.Slider(
value=0,
show_label=False,
interactive=False,
elem_id="adventure_slider",
info="",
)
achievements_description = gr.Markdown(
"# 達成成就", elem_id="achievements_description"
)
achievements = gr.HighlightedText(
value=[],
elem_classes="achievements",
color_map={
"完成": "green",
"未完成": "red",
},
)
with gr.Row():
html = get_content("htmls/adventure_blank.html")
adverture_log = gr.HTML(html, label="Adventure Log", elem_id="adventure_log")
# handling player info
with gr.Row():
player_backend_id = gr.Textbox(
"", visible=True, elem_id="player_backend_id"
)
player_info_query_btn = gr.Button("Query", elem_id="trigger_button")
# actions when player login
player_info_query_btn.click(get_player_info, player_backend_id, player_info).then(
player_info_query_btn.click(get_player_partners, player_info, pet_gallery)).then(
player_info_query_btn.click(get_player_badges, player_info, badge_gallery)).then(
player_info_query_btn.click(get_player_achievement_logs_html, player_info, adverture_log))
if __name__ == "__main__":
demo.launch()
|