laravel / app.py
kamiwork's picture
Update app.py
f412ffe verified
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)