#!/usr/bin/env python3
"""Add missing place names to PROVINCE_MAP in fix_crawler_naming.py"""

import re

PATH = '/root/gov_crawler/fix_crawler_naming.py'

with open(PATH, 'r') as f:
    content = f.read()

new_entries = r'''
    # ========== 补齐：所有缺失的省份地级市 ==========
    # 河南
    "郑州": "河南", "开封": "河南", "洛阳": "河南", "平顶山": "河南",
    "安阳": "河南", "鹤壁": "河南", "焦作": "河南", "濮阳": "河南",
    "许昌": "河南", "漯河": "河南", "三门峡": "河南", "南阳": "河南",
    "商丘": "河南", "信阳": "河南", "周口": "河南", "驻马店": "河南",
    "新乡": "河南", "济源": "河南", "孟津": "河南",
    # 河北
    "石家庄": "河北", "唐山": "河北", "秦皇岛": "河北", "邯郸": "河北",
    "邢台": "河北", "保定": "河北", "张家口": "河北", "承德": "河北",
    "沧州": "河北", "廊坊": "河北", "衡水": "河北", "南大港": "河北",
    "南浦": "河北", "温水": "河北",
    # 湖北
    "武汉": "湖北", "黄石": "湖北", "十堰": "湖北", "宜昌": "湖北",
    "襄阳": "湖北", "鄂州": "湖北", "荆门": "湖北", "孝感": "湖北",
    "荆州": "湖北", "黄冈": "湖北", "咸宁": "湖北", "随州": "湖北",
    "恩施": "湖北", "仙桃": "湖北", "潜江": "湖北", "天门": "湖北",
    "神农架": "湖北", "宜都": "湖北",
    # 湖南
    "长沙": "湖南", "株洲": "湖南", "衡阳": "湖南", "邵阳": "湖南",
    "岳阳": "湖南", "常德": "湖南", "张家界": "湖南", "益阳": "湖南",
    "郴州": "湖南", "永州": "湖南", "怀化": "湖南", "娄底": "湖南",
    "湘西": "湖南", "湘潭": "湖南", "岳麓": "湖南",
    # 江西
    "南昌": "江西", "景德镇": "江西", "萍乡": "江西", "九江": "江西",
    "新余": "江西", "鹰潭": "江西", "赣州": "江西", "吉安": "江西",
    "宜春": "江西", "抚州": "江西", "上饶": "江西", "上高": "江西",
    "万载": "江西",
    # 四川
    "成都": "四川", "自贡": "四川", "攀枝花": "四川", "泸州": "四川",
    "德阳": "四川", "绵阳": "四川", "广元": "四川", "遂宁": "四川",
    "内江": "四川", "乐山": "四川", "南充": "四川", "眉山": "四川",
    "宜宾": "四川", "广安": "四川", "达州": "四川", "雅安": "四川",
    "巴中": "四川", "资阳": "四川", "西昌": "四川", "阿坝": "四川",
    "甘孜": "四川", "凉山": "四川", "江油": "四川", "射洪": "四川",
    "宝兴": "四川",
    # 云南
    "昆明": "云南", "曲靖": "云南", "玉溪": "云南", "保山": "云南",
    "昭通": "云南", "丽江": "云南", "普洱": "云南", "临沧": "云南",
    "楚雄": "云南", "红河": "云南", "文山": "云南", "西双版纳": "云南",
    "大理": "云南", "德宏": "云南", "怒江": "云南", "迪庆": "云南",
    "沧源": "云南",
    # 贵州
    "贵阳": "贵州", "六盘水": "贵州", "遵义": "贵州", "安顺": "贵州",
    "毕节": "贵州", "铜仁": "贵州", "黔西南": "贵州", "黔东南": "贵州",
    "黔南": "贵州", "凯里": "贵州", "都匀": "贵州", "思南": "贵州",
    "大龙": "贵州",
    # 陕西
    "西安": "陕西", "铜川": "陕西", "宝鸡": "陕西", "咸阳": "陕西",
    "渭南": "陕西", "延安": "陕西", "汉中": "陕西", "榆林": "陕西",
    "安康": "陕西", "商洛": "陕西",
    # 辽宁
    "沈阳": "辽宁", "大连": "辽宁", "鞍山": "辽宁", "抚顺": "辽宁",
    "本溪": "辽宁", "丹东": "辽宁", "锦州": "辽宁", "营口": "辽宁",
    "阜新": "辽宁", "辽阳": "辽宁", "盘锦": "辽宁", "铁岭": "辽宁",
    "朝阳": "辽宁", "葫芦岛": "辽宁", "沈抚": "辽宁", "辽滨": "辽宁",
    # 黑龙江
    "哈尔滨": "黑龙江", "齐齐哈尔": "黑龙江", "鸡西": "黑龙江",
    "鹤岗": "黑龙江", "双鸭山": "黑龙江", "大庆": "黑龙江",
    "伊春": "黑龙江", "佳木斯": "黑龙江", "七台河": "黑龙江",
    "牡丹江": "黑龙江", "黑河": "黑龙江", "绥化": "黑龙江",
    "大兴安岭": "黑龙江",
    # 广西
    "南宁": "广西", "柳州": "广西", "桂林": "广西", "梧州": "广西",
    "北海": "广西", "防城港": "广西", "钦州": "广西", "贵港": "广西",
    "玉林": "广西", "百色": "广西", "贺州": "广西", "河池": "广西",
    "来宾": "广西", "崇左": "广西",
    # 福建
    "福州": "福建", "厦门": "福建", "莆田": "福建", "三明": "福建",
    "泉州": "福建", "漳州": "福建", "龙岩": "福建", "宁德": "福建",
    "仙游": "福建",
    # 山西（补充）
    "太原": "山西", "大同": "山西", "阳泉": "山西", "长治": "山西",
    "晋城": "山西", "朔州": "山西", "晋中": "山西", "忻州": "山西",
    "临汾": "山西", "吕梁": "山西", "陵川": "山西", "平定": "山西",
    "风陵渡": "山西",
    # 甘肃
    "兰州": "甘肃", "嘉峪关": "甘肃", "金昌": "甘肃", "白银": "甘肃",
    "天水": "甘肃", "武威": "甘肃", "张掖": "甘肃", "平凉": "甘肃",
    "酒泉": "甘肃", "庆阳": "甘肃", "定西": "甘肃", "陇南": "甘肃",
    "临夏": "甘肃", "甘南": "甘肃",
    # 内蒙古
    "呼和浩特": "内蒙古", "包头": "内蒙古", "乌海": "内蒙古",
    "赤峰": "内蒙古", "通辽": "内蒙古", "鄂尔多斯": "内蒙古",
    "呼伦贝尔": "内蒙古", "巴彦淖尔": "内蒙古", "乌兰察布": "内蒙古",
    "兴安盟": "内蒙古", "锡林郭勒": "内蒙古", "阿拉善": "内蒙古",
    "察右": "内蒙古", "科左": "内蒙古", "科左中旗": "内蒙古",
    # 吉林
    "长春": "吉林", "吉林市": "吉林", "四平": "吉林", "辽源": "吉林",
    "通化": "吉林", "白山": "吉林", "松原": "吉林", "白城": "吉林",
    "延边": "吉林",
    # 新疆
    "乌鲁木齐": "新疆", "克拉玛依": "新疆", "吐鲁番": "新疆",
    "哈密": "新疆", "昌吉": "新疆", "博尔塔拉": "新疆",
    "巴音郭楞": "新疆", "阿克苏": "新疆", "克孜勒苏": "新疆",
    "喀什": "新疆", "和田": "新疆", "伊犁": "新疆", "塔城": "新疆",
    "阿勒泰": "新疆", "兵团": "新疆",
    # 宁夏
    "银川": "宁夏", "石嘴山": "宁夏", "吴忠": "宁夏", "固原": "宁夏",
    "中卫": "宁夏", "苏银": "宁夏",
    # 青海
    "西宁": "青海", "海东": "青海", "海北": "青海", "黄南": "青海",
    "海南州": "青海", "果洛": "青海", "玉树": "青海", "海西": "青海",
    # 海南
    "海口": "海南", "三亚": "海南", "儋州": "海南",
    # 西藏
    "拉萨": "西藏", "日喀则": "西藏", "昌都": "西藏",
    "林芝": "西藏", "山南": "西藏", "那曲": "西藏", "阿里": "西藏",
    # 区县级（剩余条目中包含的）
    "如东": "江苏", "徐圩": "江苏", "宿城": "江苏",
    "怀宁": "安徽", "皖江": "安徽",
    "寿光": "山东", "莱阳": "山东", "东营港": "山东",
    "万州": "重庆", "涪陵": "重庆",
'''

# Find the closing brace of PROVINCE_MAP
# The map ends with:     "芮城": "山西",\n}
old_marker = '    "芮城": "山西",\n}'
new_marker = '    "芮城": "山西",\n' + new_entries.strip() + '\n}'

count = content.count(old_marker)
print(f"Found {count} occurrences of the marker")
if count > 0:
    content = content.replace(old_marker, new_marker, 1)
    with open(PATH, 'w') as f:
        f.write(content)
    print("Patch applied successfully")
else:
    print("ERROR: Marker not found!")
    # Debug: show lines around where we expect the marker
    lines = content.split('\n')
    for i, line in enumerate(lines):
        if '芮城' in line:
            print(f"Found '芮城' at line {i+1}: {repr(line)}")
            print(f"Next line: {repr(lines[i+1]) if i+1 < len(lines) else 'EOF'}")
