File size: 1,447 Bytes
ce82fb6 f412ffe ce82fb6 3c1e2a4 ce82fb6 3c1e2a4 ce82fb6 3c1e2a4 ce82fb6 3c1e2a4 ce82fb6 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | 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) |