# -*- coding: utf-8 -*-
r"""B127: tái hiện lỗi đăng nhập — mở link thiếu / cuối, xem base + đích form gửi."""
import re, subprocess, time

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()

S = 'loidangnhap'
def ev(js):
    return ba('--session', S, 'eval', js)

lst = ''
for _ in range(4):
    lst = ba('browser', 'list')
    if re.search(r'direct_local_\d+', lst):
        break
    time.sleep(3)
bid = (re.findall(r'(direct_local_\d+)', lst) or ['direct_local_121304831500484624'])[0]

for url in ('https://desktop-9gsdkd2.tail0ffe94.ts.net/dashboard',      # THIẾU / cuối
            'https://desktop-9gsdkd2.tail0ffe94.ts.net/dashboard/'):    # ĐỦ /
    ba('--session', S, 'browser', 'open', bid, url)
    time.sleep(7)
    print('  URL mở:', url)
    print('    thực tế  :', ev("location.href")[-90:].strip('"'))
    print('    base     :', ev("(document.querySelector('base')||{}).href")[-90:].strip('"'))
    print('    form gửi tới:', ev("(()=>{const f=document.querySelector('form'); return f? f.action : '(không có form)';})()")[-90:].strip('"'))
    print('    có ô mật khẩu:', ev("!!document.querySelector('input[name=mat_khau]')").strip('"'))
    print('    nội dung   :', ev("document.body.innerText.replace(/\\n/g,' | ').slice(0,90)")[-100:].strip('"'))
ba('session', 'close', S)
