import streamlit as st import undetected_chromedriver as uc from time import perf_counter, sleep import threading import time def refresh_page(url, refresh_interval, stop_event): # Configure undetected Chrome driver options = uc.ChromeOptions() options.add_argument("--no-sandbox") options.add_argument("--disable-dev-shm-usage") options.add_argument("--disable-blink-features=AutomationControlled") options.add_argument("--start-maximized") # Initialize the browser driver = uc.Chrome(options=options) try: # Open the link driver.get(url) st.write("Loaded the page successfully.") # Refresh loop while not stop_event.is_set(): start_time = perf_counter() driver.refresh() elapsed_time = perf_counter() - start_time st.write(f"Page refreshed. Time taken: {elapsed_time:.6f} seconds") time.sleep(refresh_interval) except Exception as e: st.error(f"An error occurred: {e}") finally: driver.quit() def main(): st.title("Web Page Auto-Refresh") # URL input url = st.text_input("Enter URL to refresh", "https://solscan.io/account/FWH9cXncf2C7fmbRhweeNGLNKKZ23qiyXyBk4ex8ic3y") # Refresh interval input refresh_interval = st.slider("Refresh Interval (seconds)", min_value=0.5, max_value=10.0, value=4.0, step=0.5) # Stop event for thread control stop_event = threading.Event() # Start and Stop buttons col1, col2 = st.columns(2) with col1: if st.button("Start Refreshing"): # Create and start the thread refresh_thread = threading.Thread( target=refresh_page, args=(url, refresh_interval, stop_event) ) refresh_thread.start() st.session_state.refresh_thread = refresh_thread st.success("Refreshing started!") with col2: if st.button("Stop Refreshing"): if hasattr(st.session_state, 'refresh_thread'): stop_event.set() st.session_state.refresh_thread.join() st.warning("Refreshing stopped!") if __name__ == "__main__": main()