Spaces:
Sleeping
Sleeping
File size: 1,380 Bytes
18d58ed eeca51b 18d58ed eeca51b 18d58ed eeca51b 8fc377f | 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 | 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() |