import pickle
from collections import defaultdict


def load_chengyu_dict():
    """Load chengyu dictionary from a list file and build character index"""
    try:
        # Try to load pre-built dictionary first
        with open('chengyu_dict.pkl', 'rb') as f:
            return pickle.load(f)
    except FileNotFoundError:
        pass
    
    chengyu_dict = defaultdict(list)
    try:
        with open('chengyu_list.txt', 'r', encoding='utf-8') as f:
            chengyu_list = [line.strip() for line in f if line.strip()]
    except FileNotFoundError:
        # Fallback to a sample list
        chengyu_list = [
            '安居乐业', '业精于勤', '勤能补拙', '拙口钝腮',
            '安然无恙', '恙及池鱼', '鱼目混珠', '珠联璧合',
            '车水马龙', '龙飞凤舞', '舞文弄墨', '墨守成规',
            '车载斗量', '量力而行', '行云流水', '水到渠成',
            '龙马精神', '神采奕奕', '奕奕生辉', '辉煌灿烂',
            '龙腾虎跃', '跃然纸上', '上善若水', '水滴石穿',
            '鱼龙混杂', '杂乱无章', '章法井然', '然而不然',
            '合二为一', '一心一意', '意气风发', '发奋图强',
            '合情合理', '理直气壮', '壮志凌云', '云雾缭绕',
            '规行矩步', '步步高升', '升官发财', '财源滚滚',
            '成竹在胸', '胸有成竹', '竹报平安', '安分守己',
            '成语接龙', '龙生九子', '子虚乌有', '有备无患',
            '润物无声', '声名远扬', '扬眉吐气', '气象万千',
            '大快人心', '心想事成', '成千上万', '万事如意',
            '大显身手', '手到擒来', '来日方长', '长风破浪',
            '化险为夷', '夷为平地', '地久天长', '长治久安',
            '化腐朽为神奇', '奇思妙想', '想入非非', '非同小可',
            '一鸣惊人', '人山人海', '海阔天空', '空前绝后',
            '一帆风顺', '顺理成章', '章句小儒', '儒雅风流',
            '理所当然', '然诺一言', '言行一致', '致远任重',
            '心花怒放', '放虎归山', '山穷水尽', '尽善尽美',
            '手舞足蹈', '蹈常袭故', '故弄玄虚', '虚怀若谷',
            '穿凿附会', '会心一笑', '笑逐颜开', '开门见山',
            '舟车劳顿', '顿开茅塞', '塞翁失马', '马到成功',
            '华而不实', '实事求是', '是非分明', '明察秋毫',
            '奇货可居', '居安思危', '危在旦夕', '夕阳西下',
            '人才辈出', '出类拔萃', '萃取精华', '华不再扬',
            '顺水推舟', '舟中敌国', '国泰民安', '安步当车',
            '壮志凌云', '云开雾散', '散兵游勇', '勇往直前',
            '步步为营', '营私舞弊', '弊绝风清', '清风明月',
            '来者不拒', '拒人千里', '里应外合', '合而为一',
            '故事重演', '演武修文', '文武双全', '全力以赴',
            '万马奔腾', '腾云驾雾', '雾里看花', '花前月下',
            '会当凌绝顶', '顶天立地', '地广人稀', '稀世珍宝',
            '实用主义', '义不容辞', '辞旧迎新', '新陈代谢',
            '地老天荒', '荒诞不经', '经天纬地', '地利人和',
            '想象丰富', '富贵荣华', '华丽辞藻', '藻饰太平',
            '居高临下', '下里巴人', '人定胜天', '天马行空',
            '患得患失', '失之交臂', '臂膀有力', '力不从心',
            '紊乱不堪', '堪称一绝', '绝处逢生', '生龙活虎',
            '己所不欲', '欲速不达', '达官贵人', '人心不古',
            '绕梁三日', '日新月异', '异想天开', '开天辟地',
            '千钧一发', '发愤忘食', '食不果腹', '腹背受敌',
            '财大气粗', '粗茶淡饭', '饭来张口', '口是心非',
            '美不胜收', '收获颇丰', '丰衣足食', '食古不化',
            '头头是道', '道听途说', '说一不二', '二话不说',
            '谷贱伤农', '农夫山泉', '泉水叮咚', '咚咚锵锵',
            '功成名就', '就事论事', '事半功倍', '倍道而进',
            '毫不犹豫', '豫章故郡', '郡县制度', '度日如年',
            '下笔如神', '神通广大', '大义凛然', '然后快哉',
            '臂助一臂', '臂力过人', '人外有人', '人情世故',
            '绝无仅有', '有条不紊', '紊乱如麻', '麻木不仁',
            '达标准则', '则天去私', '私心杂念', '念念不忘',
            '异曲同工', '工力悉敌', '敌众我寡', '寡不敌众',
            '强词夺理', '理想主义', '义愤填膺', '膺惩不贷',
            '收放自如', '如鱼得水', '水火不容', '容光焕发',
            '道貌岸然', '然来可期', '期望很高', '高山流水',
            '农业大国', '国富民强', '强弩之末', '末路穷途',
            '就地取材', '材大难用', '用兵如神', '神机妙算',
            '豫备不虞', '虞初新志', '志同道合', '合家欢乐',
            '人浮于事', '事与愿违', '违法乱纪', '纪律严明'
        ]
    
    for chengyu in chengyu_list:
        first_char = chengyu[0]
        chengyu_dict[first_char].append(chengyu)
    
    chengyu_dict = dict(chengyu_dict)
    try:
        with open('chengyu_dict.pkl', 'wb') as f:
            pickle.dump(chengyu_dict, f)
    except Exception as e:
        print(f"Warning: Could not save chengyu dictionary: {e}")
    
    return chengyu_dict