Update app.py
Browse files
app.py
CHANGED
|
@@ -503,8 +503,8 @@ with gr.Blocks(title="Novel Scraper") as demo:
|
|
| 503 |
)
|
| 504 |
|
| 505 |
with gr.Row():
|
| 506 |
-
btn_start
|
| 507 |
-
btn_stop
|
| 508 |
btn_refresh = gr.Button("🔄 Refresh Status")
|
| 509 |
|
| 510 |
status_box = gr.Textbox(
|
|
@@ -517,14 +517,16 @@ with gr.Blocks(title="Novel Scraper") as demo:
|
|
| 517 |
|
| 518 |
file_out = gr.File(label="Download Output Files", file_count="multiple")
|
| 519 |
|
| 520 |
-
btn_start.click(ui_start,
|
| 521 |
-
btn_stop.click(ui_stop,
|
| 522 |
btn_refresh.click(ui_status, outputs=status_box)
|
| 523 |
btn_refresh.click(ui_files, outputs=file_out)
|
| 524 |
|
| 525 |
-
#
|
| 526 |
-
|
| 527 |
-
|
|
|
|
|
|
|
| 528 |
|
| 529 |
if __name__ == "__main__":
|
| 530 |
demo.launch()
|
|
|
|
| 503 |
)
|
| 504 |
|
| 505 |
with gr.Row():
|
| 506 |
+
btn_start = gr.Button("▶ Start Scraper", variant="primary")
|
| 507 |
+
btn_stop = gr.Button("⏹ Stop", variant="stop")
|
| 508 |
btn_refresh = gr.Button("🔄 Refresh Status")
|
| 509 |
|
| 510 |
status_box = gr.Textbox(
|
|
|
|
| 517 |
|
| 518 |
file_out = gr.File(label="Download Output Files", file_count="multiple")
|
| 519 |
|
| 520 |
+
btn_start.click(ui_start, outputs=status_box)
|
| 521 |
+
btn_stop.click(ui_stop, outputs=status_box)
|
| 522 |
btn_refresh.click(ui_status, outputs=status_box)
|
| 523 |
btn_refresh.click(ui_files, outputs=file_out)
|
| 524 |
|
| 525 |
+
# Gradio 5/6: use gr.Timer for auto-polling
|
| 526 |
+
timer_status = gr.Timer(value=5)
|
| 527 |
+
timer_files = gr.Timer(value=10)
|
| 528 |
+
timer_status.tick(ui_status, outputs=status_box)
|
| 529 |
+
timer_files.tick(ui_files, outputs=file_out)
|
| 530 |
|
| 531 |
if __name__ == "__main__":
|
| 532 |
demo.launch()
|