Files
klubhaus-doorbell/libraries/FastLED/ci/util/scrapers/run_fastled_scraper.py
2026-02-12 00:45:31 -08:00

77 lines
2.1 KiB
Python

#!/usr/bin/env python3
"""
FastLED Web Scraper Utility
This script provides an easy way to run the FastLED web scraper with different
configurations and examples.
"""
import argparse
import subprocess
import sys
from pathlib import Path
def run_scraper(
example_name: str = "FestivalStick", headless: bool = False, timeout: int = 30
) -> int:
"""Run the FastLED web scraper with specified parameters"""
script_path = Path(__file__).parent / "scrape_festival_stick.py"
if not script_path.exists():
print(f"Error: Scraper script not found at {script_path}", file=sys.stderr)
return 1
print(f"Running FastLED web scraper for {example_name}...")
print(f"Headless mode: {headless}")
print(f"Timeout: {timeout} seconds")
try:
# For now, just run the existing script
# In the future, this could be enhanced to pass parameters
result = subprocess.run(
[sys.executable, str(script_path)],
check=False,
capture_output=True,
text=True,
)
if result.returncode == 0:
print("✅ Scraping completed successfully!")
print(result.stdout)
else:
print("❌ Scraping failed!")
print("STDOUT:", result.stdout)
print("STDERR:", result.stderr)
return result.returncode
except Exception as e:
print(f"Error running scraper: {e}", file=sys.stderr)
return 1
def main() -> int:
parser = argparse.ArgumentParser(description="Run FastLED web scraper")
parser.add_argument(
"--example",
"-e",
default="FestivalStick",
help="Example name to scrape (default: FestivalStick)",
)
parser.add_argument(
"--headless", action="store_true", help="Run browser in headless mode"
)
parser.add_argument(
"--timeout", "-t", type=int, default=30, help="Timeout in seconds (default: 30)"
)
args = parser.parse_args()
return run_scraper(args.example, args.headless, args.timeout)
if __name__ == "__main__":
sys.exit(main())