import gradio as gr import os from get_pulse import get_pulse_news import time cached_result = None last_fetch_time = 0 TTL = float(os.getenv("TTL_IN_SECONDS", 3600)) def get_cached_pulse(): global cached_result, last_fetch_time current_time = time.time() if cached_result is not None and (current_time - last_fetch_time) < TTL: return cached_result result = get_pulse_news() cached_result = result last_fetch_time = current_time return result def refresh_website(): return get_cached_pulse() def clear_output(): return "" with gr.Blocks() as demo: gr.Markdown("## Recent News") with gr.Row(): refresh_button = gr.Button("Refresh") clear_button = gr.Button("Clear") markdown_display = gr.Markdown() # This will display the fetched markdown text # Set up the button to call refresh_website when clicked. refresh_button.click(fn=refresh_website, inputs=[], outputs=markdown_display) clear_button.click(fn=clear_output, inputs=[], outputs=markdown_display) demo.launch()