import json, re

KO = '/data/news/json/ko-0927data.json'
ko = json.load(open(KO, encoding='utf-8'))
SECS = ['brand_hotspots','vehicle_hotspots','social_hotspots',
        'hyundai_buzz_topics_domestic','hyundai_buzz_topics_international']

n = 0

# ① focus_point 走 include_brand_annotations=False 分支（00-CORE §0.3 铁律）→ 去掉中文标注
for s in SECS:
    for i, e in enumerate(ko.get(s, [])):
        fp = e.get('focus_point')
        if not isinstance(fp, str):
            continue
        new = re.sub(r'or명\([^()]*\)', '', fp)
        new = re.sub(r'Santa Fe\(胜达\)', 'Santa Fe', new)
        new = re.sub(r'\([\u4e00-\u9fff][^()]*\)', '', new)   # 通用：剥掉 focus_point 内 (中文) 标注
        if new != fp:
            print(f'  [{s}][{i}].focus_point:')
            print(f'     改前: {fp[:95]}')
            print(f'     改后: {new[:95]}')
            e['focus_point'] = new
            n += 1

# ② 规则4 中文人名→拼音(中文)：Song Yuqi(宋雨琦)（先例 ko-0811）
# ③ brand 字段与同条 title 保持一致：Xiaohongshu(小红书)（先例：0926 AITO(问界)）
for s in SECS:
    for i, e in enumerate(ko.get(s, [])):
        for f in ['title', 'summary', 'brand']:
            v = e.get(f)
            if not isinstance(v, str):
                continue
            new = re.sub(r'Song Yuqi(?!\()', 'Song Yuqi(宋雨琦)', v)
            new = re.sub(r'(?<![\w(])Xiaohongshu(?!\()', 'Xiaohongshu(小红书)', new)
            if new != v:
                print(f'  [{s}][{i}].{f}:')
                print(f'     改前: {v[:95]}')
                print(f'     改后: {new[:95]}')
                e[f] = new
                n += 1

# hero_summary 同步
hs = ko.get('hero_summary', [])
for i, h in enumerate(hs):
    new = re.sub(r'Song Yuqi(?!\()', 'Song Yuqi(宋雨琦)', h)
    new = re.sub(r'(?<![\w(])Xiaohongshu(?!\()', 'Xiaohongshu(小红书)', new)
    if new != h:
        print(f'  [hero_summary][{i}]: {h} → {new}')
        hs[i] = new
        n += 1

json.dump(ko, open(KO, 'w', encoding='utf-8'), ensure_ascii=False, indent=2)
print(f'\n共修复 {n} 处')
