Spaces:
Sleeping
Sleeping
| 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"<div style='letter-spacing: 2px;'>{pair_name}</div>" | |
| 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() |