# -*- coding: utf-8 -*-
"""Gửi việc cho Agent-Lab bằng Python (UTF-8 an toàn) — thay cho curl.

Dùng:
  python _gui_viec.py --nguoi-gui "Lab – Hùng" --loai-go "Veneer óc chó trên MDF" \
      --dac-tinh "mạch hở, vân xoáy" --yeu-cau "Chống ố vàng" --do-bong "25–35 GU (satin)" \
      --email ai@example.com --anh-moc <ảnh> --anh-mau <ảnh>
"""
import argparse, http.cookiejar, os, sys, urllib.parse, urllib.request, uuid


def multipart(fields, files):
    b = '----agentlab' + uuid.uuid4().hex
    ra = []
    for k, v in fields.items():
        if v is None:
            continue
        ra.append(('--%s\r\nContent-Disposition: form-data; name="%s"\r\n\r\n%s\r\n' % (b, k, v)).encode('utf-8'))
    for k, duong in files.items():
        if not duong:
            continue
        ten = os.path.basename(duong)
        ra.append(('--%s\r\nContent-Disposition: form-data; name="%s"; filename="%s"\r\n'
                   'Content-Type: image/jpeg\r\n\r\n' % (b, k, ten)).encode('utf-8'))
        ra.append(open(duong, 'rb').read())
        ra.append(b'\r\n')
    ra.append(('--%s--\r\n' % b).encode('utf-8'))
    return b''.join(ra), 'multipart/form-data; boundary=%s' % b


def main():
    ap = argparse.ArgumentParser()
    ap.add_argument('--host', default='http://127.0.0.1:8098')
    ap.add_argument('--nguoi-gui', default='Lab (test)')
    ap.add_argument('--loai-go', required=True)
    ap.add_argument('--dac-tinh', default='')
    ap.add_argument('--yeu-cau', default='')
    ap.add_argument('--do-bong', default='25–35 GU (satin)')
    ap.add_argument('--ghi-chu', default='')
    ap.add_argument('--email', default='')
    ap.add_argument('--anh-moc', required=True)
    ap.add_argument('--anh-mau', required=True)
    a = ap.parse_args()

    mk = open(r'C:\Claw 2\Nghien cuu\Agent-Lab\mat_khau.txt', encoding='utf-8').read().strip()
    op = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(http.cookiejar.CookieJar()))
    body = urllib.parse.urlencode({'mat_khau': mk}).encode('utf-8')
    op.open(a.host + '/dang-nhap', body, timeout=30).read()

    du, loai = multipart({'nguoi_gui': a.nguoi_gui, 'loai_go': a.loai_go, 'dac_tinh': a.dac_tinh,
                          'yeu_cau': a.yeu_cau, 'do_bong': a.do_bong, 'ghi_chu': a.ghi_chu,
                          'email': a.email},
                         {'anh_moc': a.anh_moc, 'anh_mau': a.anh_mau})
    req = urllib.request.Request(a.host + '/gui', du, {'Content-Type': loai})
    print('trả về:', op.open(req, timeout=120).read().decode('utf-8'))
    for nhan, v in (('loại gỗ', a.loai_go), ('yêu cầu', a.yeu_cau)):
        if '\ufffd' in v:
            print('⚠️  CẢNH BÁO: %s có ký tự lỗi U+FFFD — kiểm tra lại nguồn ký tự!' % nhan)


if __name__ == '__main__':
    main()
