immunobiotech commited on
Commit
24c922b
·
verified ·
1 Parent(s): 1855768

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -10
app.py CHANGED
@@ -11,6 +11,7 @@ import io
11
  from PIL import Image
12
  import plotly.graph_objects as go
13
  from plotly.subplots import make_subplots
 
14
 
15
  # OpenSky API URL
16
  BASE_URL = "https://opensky-network.org/api"
@@ -216,7 +217,6 @@ custom_css = """
216
  }
217
  """
218
 
219
- # Gradio interface
220
  with gr.Blocks(css=custom_css) as demo:
221
  gr.HTML(
222
  """
@@ -233,7 +233,7 @@ with gr.Blocks(css=custom_css) as demo:
233
  )
234
  with gr.Column(scale=1):
235
  refresh_btn = gr.Button("🔄 Refresh")
236
- auto_refresh = gr.Checkbox(label="Auto Refresh (30s)", value=False)
237
 
238
  with gr.Row():
239
  with gr.Column(scale=2):
@@ -247,6 +247,14 @@ with gr.Blocks(css=custom_css) as demo:
247
  def update_map(region):
248
  return create_map(region)
249
 
 
 
 
 
 
 
 
 
250
  refresh_btn.click(
251
  fn=update_map,
252
  inputs=[region_select],
@@ -259,14 +267,14 @@ with gr.Blocks(css=custom_css) as demo:
259
  outputs=[map_html, dashboard_plot, stats_text]
260
  )
261
 
262
- # Auto refresh
263
- if auto_refresh:
264
- demo.load(
265
- fn=update_map,
266
- inputs=[region_select],
267
- outputs=[map_html, dashboard_plot, stats_text],
268
- every=30
269
- )
270
 
271
  # Initial map load
272
  map_html, dashboard_plot, stats_text = create_map("world")
 
11
  from PIL import Image
12
  import plotly.graph_objects as go
13
  from plotly.subplots import make_subplots
14
+ import threading
15
 
16
  # OpenSky API URL
17
  BASE_URL = "https://opensky-network.org/api"
 
217
  }
218
  """
219
 
 
220
  with gr.Blocks(css=custom_css) as demo:
221
  gr.HTML(
222
  """
 
233
  )
234
  with gr.Column(scale=1):
235
  refresh_btn = gr.Button("🔄 Refresh")
236
+ auto_refresh = gr.Checkbox(label="Auto Refresh", value=False)
237
 
238
  with gr.Row():
239
  with gr.Column(scale=2):
 
247
  def update_map(region):
248
  return create_map(region)
249
 
250
+ def auto_refresh_function(auto_refresh_state):
251
+ while auto_refresh_state:
252
+ time.sleep(30) # 30초 대기
253
+ map_data, dashboard_data, stats_data = create_map(region_select.value)
254
+ map_html.update(value=map_data)
255
+ dashboard_plot.update(value=dashboard_data)
256
+ stats_text.update(value=stats_data)
257
+
258
  refresh_btn.click(
259
  fn=update_map,
260
  inputs=[region_select],
 
267
  outputs=[map_html, dashboard_plot, stats_text]
268
  )
269
 
270
+ def handle_auto_refresh(auto_refresh_state):
271
+ if auto_refresh_state:
272
+ threading.Thread(target=auto_refresh_function, args=(True,), daemon=True).start()
273
+
274
+ auto_refresh.change(
275
+ fn=handle_auto_refresh,
276
+ inputs=[auto_refresh]
277
+ )
278
 
279
  # Initial map load
280
  map_html, dashboard_plot, stats_text = create_map("world")