HEHEBOIOG's picture
Create app.py
4c347a3 verified
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()