import json import gradio as gr from theme import Seafoam seafoam = Seafoam() # load css with open("css/style.css", "r", encoding="utf-8") as file: css = file.read() # start of gradio interface with gr.Blocks(theme=seafoam, css=css) as demo: with gr.Row(): with gr.Column( scale=1, ): pet_gallery = gr.Gallery( [ "media/partner1.png", "media/partner2.png", "media/partner3.png", "media/partner4.png", ] * 2, label="夥伴", preview=False, elem_id="pet_gallery", columns=30, height=200, ) pet_description = gr.Markdown("# 夥伴", elem_id="pet_avatar_description") badge_gallery = gr.Gallery( [ "media/badge.png", "media/badge2.png", "media/badge3.png", "media/badge4.png", ] * 2, show_share_button=True, label="徽章", preview=False, elem_id="badge_gallery", columns=30, height=200, ) badge_description = gr.Markdown("# 徽章", elem_id="badge_avatar_description") with gr.Column(scale=1): avatar = gr.Gallery( ["media/avatar.png", "media/avatar2.png"], preview=True, elem_id="user_avatar", ) avatar_description = gr.Markdown( "# 光束守護者", elem_id="user_avatar_description" ) with gr.Column(scale=1): description = gr.Markdown("# 冒險階段", elem_id="adventure_description") with open("htmls/progress_bar.html", "r", encoding="utf-8") as file: progress_bar_html = file.read() progress_bar_html = ( "
" + progress_bar_html ) progress_bar = gr.HTML( progress_bar_html, ) with open("htmls/stage_desc.html", "r", encoding="utf-8") as file: stage_desc_html = file.read() stage_desc_html = ( "
" + stage_desc_html ) stage_desc = gr.HTML( stage_desc_html, ) with gr.Row(): with open("htmls/achievement.html", "r", encoding="utf-8") as file: html = file.read() html = "
" + html f = gr.HTML(html, label="Achievement Log", elem_id="achievement_log") with gr.Row(): i = gr.Textbox(elem_id="test1") o = gr.Textbox() b = gr.Button(elem_id="test2") df = gr.DataFrame() def run_query(user_id): QUERY = ( "SELECT created_at, points, user_role, joined, developer FROM `datastore_backup.UserData`" f"WHERE user_id = '{user_id}'" ) print(f"Start query, user_id: {user_id}, {QUERY}") query_job = client.query(QUERY) print("Running query") query_result = query_job.result() print("Query complete") df = query_result.to_dataframe() print("Convert to dataframe") # Select a subset of columns df = df[["created_at", "points", "user_role", "joined", "developer"]] # Convert numeric columns to standard numpy types print("Convert to numpy") df = df.astype({"points": np.int64}) return df b.click( run_query, i, df, ) if __name__ == "__main__": demo.launch()