# -*- coding: utf-8 -*-
"""Step 6 验收：从 CDN 下载线上 workbench_data.json，核对 _merged_at 与本地一致（证明确实部署了本次版本）。"""
import hashlib
import json
import os
import time
import urllib.parse
import urllib.request

BASE = 'https://bier-sales-d0gatbvlx288724e9-1458438710.tcloudbaseapp.com/'
LOCAL = os.path.expanduser('~/Desktop/Hermes输出-工作类/数据/workbench_data.json')
TMP = os.path.join(os.path.dirname(os.path.abspath(__file__)), '_remote_workbench_check.json')

keys = ['数据/workbench_data.json', '数据/kpi_dashboard.json', '数据/kpi_progress.json',
        '数据/file_manifest.json', '数据/customer_360.json', '数据/shipment_status.json',
        '数据/my_activities.json', '数据/pricing/_key_customers.json']

local_merged = json.load(open(LOCAL, encoding='utf-8')).get('_merged_at')
print('本地 _merged_at:', local_merged)
print('本地 sha256:', hashlib.sha256(open(LOCAL, 'rb').read()).hexdigest()[:16])

for k in keys:
    url = BASE + urllib.parse.quote(k)
    try:
        req = urllib.request.Request(url, headers={'User-Agent': 'hermes-cron/1.0'})
        t0 = time.time()
        with urllib.request.urlopen(req, timeout=60) as r:
            body = r.read()
        dur = time.time() - t0
        info = ''
        if k.endswith('workbench_data.json'):
            try:
                up = json.loads(body.decode('utf-8'))
                info = ' | 线上 _merged_at=%s | 一致=%s' % (up.get('_merged_at'), up.get('_merged_at') == local_merged)
                with open(TMP, 'wb') as f:
                    f.write(body)
            except Exception as e:
                info = ' | 解析失败 %s' % e
        print('OK   %-38s %8d bytes  %.1fs%s' % (k.split('/')[-1], len(body), dur, info))
    except Exception as e:
        print('FAIL %-38s %s' % (k.split('/')[-1], e))
