# -*- coding: utf-8 -*-
r"""B140: chụp ảnh 2 tab (Sự cố kỹ thuật, Báo cáo kỹ thuật) + kiểm trang qua link Funnel."""
import os, re, subprocess, time

GOC = r'C:\Claw 2\Nghien cuu\Dashboard-CSDL'
def ba(*a, t=300):
    r = subprocess.run(['browser-act'] + list(a), capture_output=True, text=True, encoding='utf-8',
                       errors='replace', timeout=t)
    return ((r.stdout or '') + (r.stderr or '')).strip()

lst = ''
for _ in range(6):
    lst = ba('browser', 'list')
    if re.search(r'direct_local_\d+', lst):
        break
    time.sleep(4)
bid = (re.findall(r'(direct_local_\d+)', lst) or ['direct_local_121304831500484624'])[0]
S = 'dashshot2'
ba('--session', S, 'browser', 'open', bid, 'https://desktop-9gsdkd2.tail0ffe94.ts.net/dashboard/')
time.sleep(9)
def ev(js):
    return ba('--session', S, 'eval', js)
if ev("!!document.querySelector('input[name=mat_khau]')").strip('"').lower() == 'true':
    ev("(()=>{const i=document.querySelector('input[name=mat_khau]'); i.value='btchem2026'; i.closest('form').submit(); return 1;})()")
    time.sleep(13)
print('  qua Funnel — địa chỉ:', ev("location.pathname").strip('"'), '| KPI:', ev("document.querySelectorAll('#kpis .kpi').length").strip('"'))
for k, ten in (('su_co', 'su_co_ky_thuat'), ('mua_hang', 'mua_hang')):
    ev("(()=>{const t=[...document.querySelectorAll('.tab')].find(e=>e.dataset.k==='%s'); t.click(); return 1;})()" % k)
    time.sleep(7)
    print('  tab %-14s canvas vẽ: %s | bảng: %s' % (k, ev("[...document.querySelectorAll('canvas')].filter(c=>Chart.getChart(c)).length").strip('"'),
                                                    ev("document.querySelectorAll('#luoi table').length").strip('"')))
    print('  chụp:', ba('--session', S, 'screenshot', os.path.join(GOC, '_anh_%s.png' % ten), '--full')[-46:])
ba('session', 'close', S)
for f in ('_anh_su_co_ky_thuat.png', '_anh_mua_hang.png'):
    p = os.path.join(GOC, f)
    print('  %-28s %s byte' % (f, os.path.getsize(p) if os.path.exists(p) else 'KHÔNG CÓ'))
