import re
import pathlib

keywords = [
    "LIVEKIT", "livekit", "ws://", "wss://", "7880", "7881", "7882", "room", "token"
]

root = pathlib.Path("/opt/ai-avatar-demo")
count = 0

for p in root.rglob("*"):
    if not p.is_file():
        continue
    parts = p.parts
    if ".venv" in parts or "models" in parts or ".git" in parts or "data" in parts or "__pycache__" in parts:
        continue
    if p.suffix in [".safetensors", ".wav", ".png", ".jpg", ".bin", ".pkl"]:
        continue
        
    try:
        with open(p, "r", encoding="utf-8", errors="ignore") as f:
            lines = f.readlines()
        for idx, line in enumerate(lines):
            match = False
            for kw in keywords:
                if kw in line:
                    match = True
                    break
            if match:
                outline = f"{p}:{idx+1}: {line.strip()}"
                # Filter non-ascii characters to prevent CP950 encoding error
                clean_outline = "".join([c if ord(c) < 128 else "?" for c in outline])
                print(clean_outline)
                count += 1
                if count >= 200:
                    break
    except Exception:
        pass
    if count >= 200:
        break
