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)