import json, re

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

# 规则4 中文人名→拼音(中文)；规则2 中文品牌无官方英文名→拼音(中文)
# 负向前瞻 (?!\() 防双标注
RULES = [
    (r'Cheng Yi(?!\()', 'Cheng Yi(成毅)'),
    (r'Dahan(?!\()', 'Dahan(大汉)'),
    (r'Fangchengbao(?!\()', 'Fangchengbao(方程豹)'),
]

n = 0
for s in SECS:
    for i, e in enumerate(ko.get(s, [])):
        for f in ['title','summary','focus_point','brand']:
            v = e.get(f)
            if not isinstance(v, str):
                continue
            new = v
            for pat, repl in RULES:
                new = re.sub(pat, repl, 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 = h
    for pat, repl in RULES:
        new = re.sub(pat, repl, 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} 处')
