import gradio as gr import random from datetime import datetime, timedelta, timezone # --- 1. 定数とメンバー設定 --- members = ["かほ", "さや", "こず", "るり", "めぐ", "つづ", "ぎん", "すず", "ひめ", "せら", "いず", "さち"] # --- 2. 神託ロジック --- def get_personal_daily_oracle(device_id): seed_base = device_id if device_id else "default_fate" jst = timezone(timedelta(hours=9)) today_str = datetime.now(jst).strftime("%Y-%m-%d") random.seed(f"{seed_base}_{today_str}") selected = random.sample(members, 2) random.shuffle(selected) pair_name = f"{selected[0]}{selected[1]}" # GitHub側で解析するためのHTML oracle_html = f"
{pair_name}
" return oracle_html # --- 3. Gradio UI 設定 --- with gr.Blocks() as demo: device_id_input = gr.Textbox(visible=False) result_output = gr.HTML(visible=False) # 外部(GitHub)から叩かれる関数。api_name は絶対にこれ。 draw_btn = gr.Button("get_oracle", visible=False) draw_btn.click( fn=get_personal_daily_oracle, inputs=[device_id_input], outputs=[result_output], api_name="get_oracle" ) if __name__ == "__main__": # エラーの原因をすべて削除。最新版Gradioはこれで動きます。 demo.launch()