from playwright.sync_api import sync_playwright

GROUP_URL = "https://www.facebook.com/groups/1928282657363211/"
# Ezt írd át egy olyan szerző nevére, aki egy VALÓDI posztot írt
# (amit a screenshoton láttál, pl. "Mészáros Barbara" vagy "Gergely Vincze").
KNOWN_AUTHOR_TEXT = "Gergely Vincze"

with sync_playwright() as p:
    browser = p.chromium.launch(
        headless=False,
        args=["--disable-blink-features=AutomationControlled"],
    )
    context = browser.new_context(
        storage_state="storage_state.json",
        viewport={"width": 1366, "height": 900},
        user_agent=(
            "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 "
            "(KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36"
        ),
    )
    page = context.new_page()
    page.goto(GROUP_URL, wait_until="networkidle")
    page.wait_for_timeout(3000)

    # Görgessünk egy kicsit, hátha lejjebb kell menni, hogy betöltődjön
    for _ in range(8):
        page.mouse.wheel(0, 2500)
        page.wait_for_timeout(1500)

    loc = page.get_by_text(KNOWN_AUTHOR_TEXT, exact=False).first
    found_count = page.get_by_text(KNOWN_AUTHOR_TEXT, exact=False).count()
    print(f"'{KNOWN_AUTHOR_TEXT}' előfordulások száma: {found_count}")

    if found_count == 0:
        print("Nem található — görgess többet, vagy válassz másik ismert szöveget "
              "a KNOWN_AUTHOR_TEXT-ben, és futtasd újra.")
    else:
        info = loc.evaluate("""
            (el) => {
                const lines = [];
                let node = el;
                let depth = 0;
                while (node && depth < 30) {
                    if (node.nodeType === 1) {
                        const role = node.getAttribute('role');
                        const posinset = node.getAttribute('aria-posinset');
                        const setsize = node.getAttribute('aria-setsize');
                        const label = node.getAttribute('aria-label');
                        const dataPagelet = node.getAttribute('data-pagelet');
                        const tag = node.tagName;
                        const cls = (node.className || '').toString().slice(0, 40);
                        lines.push(
                            `#${depth} <${tag} class="${cls}"> role=${role} ` +
                            `aria-posinset=${posinset} aria-setsize=${setsize} ` +
                            `data-pagelet=${dataPagelet} ` +
                            `aria-label=${label ? label.slice(0,60) : null}`
                        );
                    }
                    node = node.parentElement;
                    depth++;
                }
                return lines.join("\\n");
            }
        """)
        print(info)
        with open("dom_path.txt", "w", encoding="utf-8") as f:
            f.write(info)

    browser.close()
