#!/usr/bin/env python3
"""线上 CDN 回读验证：workbench_data.json / shipment_status.json 与本地对比"""
import json, os, urllib.request, urllib.parse, hashlib, sys

BASE = 'https://bier-sales-d0gatbvlx288724e9-1458438710.tcloudbaseapp.com/'
DATA = '/Users/liuxinyuan/Desktop/Hermes输出-工作类/数据'

def fetch(relpath):
    url = BASE + urllib.parse.quote('数据/' + relpath, safe='/')
    req = urllib.request.Request(url, headers={'User-Agent': 'hermes-cron'})
    with urllib.request.urlopen(req, timeout=60) as r:
        return r.read(), r.status

def cdn_key(d):
    return d.get('_merged_at') or d.get('updated_at') or d.get('updated')

def local_key(path):
    d = json.load(open(os.path.join(DATA, path), encoding='utf-8'))
    n = len(d.get('customers') or d.get('items') or d.get('orders') or [])
    return d, cdn_key(d), n

targets = sys.argv[1:] or ['workbench_data.json', 'shipment_status.json']
for t in targets:
    raw, code = fetch(t)
    live = json.loads(raw.decode('utf-8'))
    ld, lk, ln = local_key(t)
    print('== %s ==' % t)
    print('  CDN   http=%s size=%d key=%s md5=%s' % (code, len(raw), cdn_key(live), hashlib.md5(raw).hexdigest()[:12]))
    print('  LOCAL      size=%d key=%s' % (os.path.getsize(os.path.join(DATA, t)), lk))
    print('  一致:', cdn_key(live) == lk, '| CDN列表条数=%d 本地列表条数=%d' % (
        len(live.get('customers') or live.get('items') or live.get('orders') or []), ln))
