Spaces:
Running
Running
File size: 1,898 Bytes
b560569 751e28f a0b418d b560569 751e28f a0b418d b560569 0f9e24f a0b418d 751e28f b560569 751e28f b560569 0f9e24f 6e2376b 734a45c 0f9e24f 6e2376b 734a45c b560569 6e2376b b560569 751e28f 0f9e24f 6e2376b 94fc4da 734a45c 6e2376b e3447a5 d45a226 dde01bf 7ab0240 6e2376b |
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 41 42 43 44 45 46 47 48 |
import gradio as gr
# shared state
token_received = {"status": False, "token": "", "client_id": ""}
# 1) this will be called by POST
def receive_token(accessToken: str, client_id: str):
token_received["status"] = True
token_received["token"] = accessToken
token_received["client_id"] = client_id
return {"status": "ok"}
# 2) this just drives your UI
def check_status():
return "β
Code received" if token_received["status"] else "β Code not received"
def show_token():
return token_received["token"] if token_received["status"] else ""
def show_client_id():
return token_received["client_id"] if token_received["status"] else ""
def reset_status():
token_received["status"] = False
token_received["token"] = ""
token_received["client_id"] = ""
return "β Code not received", "", ""
with gr.Blocks() as demo:
hidden_token = gr.Textbox(visible=False, elem_id="hidden_token")
hidden_client_id = gr.Textbox(visible=False, elem_id="hidden_client_id")
hidden_btn = gr.Button(visible=False, elem_id="hidden_btn")
hidden_btn.click(fn=receive_token, inputs=[hidden_token, hidden_client_id], outputs=[])
status_box = gr.Textbox(value=check_status(), label="Token Status", interactive=False)
token_display = gr.Textbox(value=show_token(), label="Received Token", interactive=False)
client_id_display = gr.Textbox(value=show_client_id(), label="Client ID", interactive=False)
with gr.Row():
refresh = gr.Button("Refresh").click(fn=check_status, outputs=status_box)
reset = gr.Button("Reset Status").click(fn=reset_status, outputs=[status_box, token_display, client_id_display])
# β
Correct usage of Timer
timer = gr.Timer(1.0)
timer.tick(fn=show_token, outputs=token_display)
timer.tick(fn=show_client_id, outputs=client_id_display)
demo.launch(server_name="0.0.0.0", server_port=7860) |