import sys, time
from pathlib import Path
sys.path.append(str(Path("05_Production_Pipeline").resolve()))
from invisible_playwright import InvisiblePlaywright
from muse_invpw_driver import DEFAULT_PROFILE

def wait_for_thread_load():
    with InvisiblePlaywright(profile_dir=DEFAULT_PROFILE, headless=True) as ctx:
        page = ctx.pages[0] if ctx.pages else ctx.new_page()
        page.goto("https://muse.ai/thread/a4123c5f-a6fe-438f-bf95-47e9d636296a", wait_until="domcontentloaded", timeout=30000)
        
        print("Waiting for thread messages to render...")
        for i in range(10):
            time.sleep(3)
            # Check if any messages appeared
            msgs = page.locator('.chat-message, [role="article"], [data-message-author]').count()
            dl_btns = page.locator('button[aria-label*="Tải video xuống"], button:has-text("Tải video xuống")').count()
            print(f"[{(i+1)*3}s] messages={msgs}, dl_btns={dl_btns}")
            if msgs > 0 or dl_btns > 0:
                break
                
        page.screenshot(path="04_Assets/thread_loaded.png")
        # Print text of messages
        all_text = page.locator('.chat-message, [role="article"]').all_inner_texts()
        print(f"Total messages loaded: {len(all_text)}")
        for t in all_text[-2:]:
            print("--- Message ---")
            print(t[:400])

if __name__ == '__main__':
    wait_for_thread_load()
