import os import time import threading import gradio as gr from playwright.sync_api import sync_playwright TARGET_URL = os.getenv("TARGET_URL", "https://packet-25ek.onrender.com") logs = [] def run_refresher(): with sync_playwright() as p: browser = p.chromium.launch(headless=True) page = browser.new_page() while True: try: current_time = time.strftime('%Y-%m-%d %H:%M:%S') page.goto(TARGET_URL, wait_until="networkidle", timeout=60000) msg = f"[{current_time}] ✅ Success: Pinged {TARGET_URL}" logs.append(msg) except Exception as e: msg = f"[{time.strftime('%H:%M:%S')}] ❌ Error: {str(e)}" logs.append(msg) if len(logs) > 20: logs.pop(0) time.sleep(300) threading.Thread(target=run_refresher, daemon=True).start() def get_logs(): return "\n".join(logs) if logs else "Starting bot... Please wait." # UI Setup with gr.Blocks(title="Link Refresher Bot") as demo: gr.Markdown(f"### 🚀 Bot is running for: `{TARGET_URL}`") log_output = gr.Textbox(label="Live Status Logs", value="Waiting for first ping...", lines=10) # Ye component har 10 second baad 'get_logs' ko call karega timer = gr.Timer(10) timer.tick(get_logs, outputs=log_output) if __name__ == "__main__": demo.launch(server_name="0.0.0.0", server_port=7860)