cp-oracle-dev / app.py
Nyanpre's picture
Update app.py
eeca51b verified
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()