fagun18's picture
Set Hacker theme as default
bfd23c7 verified
"""
🤖 Fagun Browser Automation Testing Agent - Hugging Face Spaces Entry Point
==========================================
A powerful, intelligent browser automation tool that performs comprehensive website testing.
Author: Mejbaur Bahar Fagun
Role: Software Engineer in Test
LinkedIn: https://www.linkedin.com/in/mejbaur/
"""
import os
import sys
# Set UTF-8 encoding for Windows console
if sys.platform.startswith('win'):
import codecs
sys.stdout = codecs.getwriter('utf-8')(sys.stdout.detach())
sys.stderr = codecs.getwriter('utf-8')(sys.stderr.detach())
# Disable telemetry before importing browser-use
os.environ["BROWSER_USE_TELEMETRY"] = "false"
os.environ["BROWSER_USE_DISABLE_TELEMETRY"] = "true"
os.environ["BROWSER_USE_NO_TELEMETRY"] = "true"
os.environ["DISABLE_TELEMETRY"] = "true"
os.environ["NO_TELEMETRY"] = "true"
# Configure logging
import logging
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
handlers=[logging.StreamHandler(sys.stdout)]
)
logging.getLogger("browser_use").setLevel(logging.WARNING)
logging.getLogger("posthog").setLevel(logging.WARNING)
from dotenv import load_dotenv
load_dotenv()
# Install Playwright browsers on first run
import subprocess
import sys
def install_playwright_browsers():
"""Install Playwright browsers if not already installed"""
try:
print("🔍 Checking Playwright browsers...")
result = subprocess.run(
[sys.executable, "-m", "playwright", "install", "chromium", "firefox"],
capture_output=True,
text=True,
timeout=300
)
if result.returncode == 0:
print("✅ Playwright browsers installed successfully")
else:
print(f"⚠️ Playwright install warning: {result.stderr}")
except Exception as e:
print(f"⚠️ Could not install Playwright browsers: {e}")
# Install browsers on startup
install_playwright_browsers()
from src.webui.interface import create_ui
# Create the Gradio interface with Hacker theme
demo = create_ui(theme_name="Hacker")
# Launch for Hugging Face Spaces
if __name__ == '__main__':
demo.queue().launch(
server_name="0.0.0.0",
server_port=7860, # Hugging Face Spaces default port
share=False # No need for share link on HF Spaces
)