import re
import subprocess
import json
import os
import time
from datetime import datetime

# ✅ 指定扫码日志文件名
log_file = "result_20250513_2005.log"

# ✅ 输出 JSON 文件夹
output_dir = "eda_json"
os.makedirs(output_dir, exist_ok=True)

# ✅ 提取 pc / qty / on 字段
records = []
with open(log_file, "r", encoding="utf-8") as f:
    for line in f:
        match = re.search(r'pc:([^,}]+)', line)
        if match:
            pc = match.group(1).strip()
            qty = re.search(r'qty:([^,}]+)', line)
            qty = qty.group(1).strip() if qty else ""
            on = re.search(r'on:([^,}]+)', line)
            on = on.group(1).strip() if on else ""
            records.append({"pc": pc, "qty": qty, "on": on})

print(f"共提取到 {len(records)} 个 pc 编号：{[r['pc'] for r in records]}")

# ✅ 请求模板（请替换你的 Cookie）
CURL_BASE = [
    "curl", "https://pro.lceda.cn/api/v2/eda/product/search",
    "-H", "Accept: application/json, text/javascript, */*; q=0.01",
    "-H", "Accept-Language: zh-CN,zh;q=0.9,en;q=0.8",
    "-H", "Cache-Control: no-cache",
    "-H", "Connection: keep-alive",
    "-H", "Content-Type: application/json; charset=UTF-8",
    "-b", "sensorsdata2015jssdkcross=dfm-enc-%7B%22Va28a6y8_aV%22%3A%22BtHIGIAs%22%2C%22gae28_aV%22%3A%22EGArIyRRrnsEusy-AGRRrIHtStRuAyt-SynHRuHt-IntnSAA-EGArIyRRrnIuRu%22%2C%22OemO2%22%3A%7B%22%24ki8r28_8eiggay_2mbeyr_8cOr%22%3A%22%E5%BC%95%E8%8D%90%E6%B5%81%E9%87%8F%22%2C%22%24ki8r28_2rieyz_lrcMmeV%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC%22%2C%22%24ki8r28_ergreere%22%3A%22z88O2%3A%2F%2Fm2zMzbu.ymo%2F%22%2C%22%24ki8r28_ki6Va6f_Oifr%22%3A%22z88O2%3A%2F%2FOem.kyrVi.y6%2FrVa8me%23aV%3DiVGtHEuEVyEuSnuHtuVsHussAtSHyGRi%2C8iu%3D*nIRSnIusHyHtSyryGIEuIHtiGuiiEnGG%22%7D%2C%22aVr68a8ar2%22%3A%22rc3liZ7ku67OV5kgPsGCiskkDskl3qmawFlMWFQqQhVkQq3JPqxqBF0HQhVkwhKSQXfIPqLqpvAAPhPEQs3EpvAhQqfsQX0MBF1Hw9KhPhyIWFPhPqVa3aMax9klWZHAiD7HDsJCWskbDskl3qmaFXfEwhlhwX3agN%3D%3D%22%2C%22za28mec_kmfa6_aV%22%3A%7B%226ior%22%3A%22%24aVr68a8c_kmfa6_aV%22%2C%22Cikbr%22%3A%22BtHIGIAs%22%7D%2C%22%24VrCayr_aV%22%3A%22EGArIyRRrnsEusy-AGRRrIHtStRuAyt-SynHRuHt-IntnSAA-EGArIyRRrnIuRu%22%7D; HWWAFSESID=3cb22732dade881cff; HWWAFSESTIME=1745300920464; _ga_SBSVCM6H64=GS1.1.1745300921.1.0.1745300921.0.0.0; _ga=GA1.1.1288318448.1745300922; version=eyJpdiI6InUzVWFyck91NnJYU0NFYm5PblwvdWNnPT0iLCJ2YWx1ZSI6InROcVgxeEF5TURWWEc0MG5qSHQ4M1c1VTBmUVhzR21KVU1QMUhwT0Jaa289IiwibWFjIjoiMzQ3MmUwOWUwNWZhMTUyYzllNTE5ZDFjNWNjZTNiZmI3YmJjOGE4NTk1NWE2ZDJkYTU0OTg2MDQxYjFhMzlkMSJ9; lceda_pro_session=eyJpdiI6InJESFV3ZGo0R29aXC8yYjhKQzFJS2Z3PT0iLCJ2YWx1ZSI6IlFiZzJDc3VxRE5XMlFhSFVrNTR6ekNoZ0s3UGlCTkVuaWMwcWVcL0NGV044YTg1bHdJK0xMekd4YTFJQkRxcEVmQXgySVBhQStKTFZBWHQyVTRwYTlaQT09IiwibWFjIjoiYWY4MzNhM2Y3ZTc0YTU2MDQ3NTA1ODVkNmU2NTk1YzgyODAxNmVkYTBhYTQwYWNhYmQyNzg3MzU2NzA0NDBjMyJ9",  # 👈 替换为你的 cookie
    "-H", "Origin: https://pro.lceda.cn",
    "-H", "Pragma: no-cache",
    "-H", "Referer: https://pro.lceda.cn/editor",
    "-H", "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)",
    "-H", "X-Requested-With: XMLHttpRequest",
    "-H", 'sec-ch-ua: "Microsoft Edge";v="135", "Not-A.Brand";v="8", "Chromium";v="135"',
    "-H", "sec-ch-ua-mobile: ?0",
    "-H", 'sec-ch-ua-platform: "Windows"'
]

# ✅ 初始化 Markdown 表格
markdown_lines = []
markdown_lines.append("| LCSC 编号 | 品名 | 品牌名称 | 中文品类名 | 封装标准 | 拆分比 | 数量 | 起始价格 | 描述 | 订单号 |")
markdown_lines.append("|-----------|------|-----------|--------------|------------|--------|--------|-----------|--------|--------|")

# ✅ 查询每个 PC 并提取字段
for record in records:
    pc = record["pc"]
    qty = record["qty"]
    on = record["on"]

    print(f"\n🔍 正在查询 PC: {pc}")
    data_raw = f'{{"codes":"{pc}"}}'
    command = CURL_BASE + ["--data-raw", data_raw]

    try:
        result = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
        response_text = result.stdout
        data = json.loads(response_text)

        product = data["result"]["productList"][0]

        # 字段提取 + fallback
        code = product.get("code", "")
        name = product.get("name", "")
        brand = product.get("brandName", "")
        category_name_cn = (
            product.get("tags", {}).get("parent_tag", {}).get("name_cn") or
            product.get("tags", {}).get("child_tag", {}).get("name_cn") or
            product.get("catalogName") or
            ""
        )
        standard = product.get("standard", "")
        split_ratio = product.get("splitRatio", "")
        price_start = product.get("priceList", [{}])[0].get("price", "")
        description = (
            product.get("Description") or
            product.get("attributes", {}).get("Description") or
            product.get("desc") or
            product.get("device_info", {}).get("description") or
            ""
        )

        # 添加 Markdown 表格行
        markdown_lines.append(
            f"| {code} | {name} | {brand} | {category_name_cn} | {standard} | {split_ratio} | {qty} | {price_start} | {description} | {on} |"
        )

        # 保存 JSON 文件
        with open(os.path.join(output_dir, f"{pc}.json"), "w", encoding="utf-8") as f:
            f.write(response_text)

    except Exception as e:
        print(f"❌ 查询失败：{e}")

    time.sleep(0.5)

# ✅ 输出 Markdown 表格文件（加时间戳）
timestamp = datetime.now().strftime("%Y%m%d_%H%M")
summary_filename = f"pc_summary_{timestamp}.md"

with open(summary_filename, "w", encoding="utf-8") as f:
    f.write("\n".join(markdown_lines))

print(f"\n✅ Markdown 表格已保存为文件：{summary_filename}")

