diff --git a/dota.py b/dota.py index 03c8f90..bbffc6b 100644 --- a/dota.py +++ b/dota.py @@ -255,7 +255,7 @@ def serialize_match_for_discord(match_): if player['nickname']: player_name = f"**{player['nickname']}**" - desc = f"{player_name}(Lv.**{player['level']}** {player['hero']}): **{player['kills']}** 杀 **{player['deaths']}** 死 **{player['assists']}** 助 | **{utils.shorten_digits(player['total_gold'])}** 经济 | **{utils.shorten_digits(player['hero_damage'])}** 伤害 " + desc = f"{player_name}(Lv.**{player['level']}** {utils.get_hero_chinese_name(player['hero'])}): **{player['kills']}** 杀 **{player['deaths']}** 死 **{player['assists']}** 助 | **{utils.shorten_digits(player['total_gold'])}** 经济 | **{utils.shorten_digits(player['hero_damage'])}** 伤害 " if player['is_radiant']: radiant.append(desc) diff --git a/utils.py b/utils.py index 1928f5b..d9e6b4c 100644 --- a/utils.py +++ b/utils.py @@ -64,3 +64,143 @@ def shorten_digits(num): return '%.1fk' % (num / 1000) else: return str(num) + + +def get_hero_chinese_name(english_name): + """将Dota英雄的英文名转换为中文名 + Args: + english_name (str): 英雄的英文名称 + Returns: + str: 英雄的中文名称,如果找不到对应的中文名则返回原英文名 + """ + hero_name_map = { + "alchemist": "炼金术士", + "axe": "斧王", + "bristleback": "钢背兽", + "centaur_warrunner": "半人马战行者", + "chaos_knight": "混沌骑士", + "dawnbreaker": "破晓辰星", + "doom": "末日使者", + "dragon_knight": "龙骑士", + "earth_spirit": "大地之灵", + "earthshaker": "撼地者", + "elder_titan": "上古巨神", + "huskar": "哈斯卡", + "kunkka": "昆卡", + "legion_commander": "军团指挥官", + "lifestealer": "噬魂鬼", + "mars": "玛尔斯", + "night_stalker": "暗夜魔王", + "ogre_magi": "食人魔魔法师", + "omniknight": "全能骑士", + "primal_beast": "兽", + "pudge": "屠夫", + "slardar": "斯拉达", + "spirit_breaker": "裂魂人", + "sven": "斯温", + "tidehunter": "潮汐猎人", + "timbersaw": "伐木机", + "tiny": "小小", + "treant_protector": "树精卫士", + "tusk": "巨牙海民", + "underlord": "孽主", + "undying": "不朽尸王", + "wraith_king": "冥魂大帝", + "anti-mage": "敌法师", + "arc_warden": "天穹守望者", + "bloodseeker": "血魔", + "bounty_hunter": "赏金猎人", + "clinkz": "克林克兹", + "drow_ranger": "卓尔游侠", + "ember_spirit": "灰烬之灵", + "faceless_void": "虚空假面", + "gyrocopter": "矮人直升机", + "hoodwink": "森海飞霞", + "juggernaut": "主宰", + "kez": "凯", + "luna": "露娜", + "medusa": "美杜莎", + "meepo": "米波", + "monkey_king": "齐天大圣", + "morphling": "变体精灵", + "naga_siren": "娜迦海妖", + "phantom_assassin": "幻影刺客", + "phantom_lancer": "幻影长矛手", + "razor": "剃刀", + "riki": "力丸", + "shadow_fiend": "影魔", + "slark": "斯拉克", + "sniper": "狙击手", + "spectre": "幽鬼", + "templar_assassin": "圣堂刺客", + "terrorblade": "恐怖利刃", + "troll_warlord": "巨魔战将", + "ursa": "熊战士", + "viper": "冥界亚龙", + "weaver": "编织者", + "ancient_apparition": "远古冰魄", + "crystal_maiden": "水晶室女", + "death_prophet": "死亡先知", + "disruptor": "干扰者", + "enchantress": "魅惑魔女", + "grimstroke": "天涯墨客", + "jakiro": "杰奇洛", + "keeper_of_the_light": "光之守卫", + "leshrac": "拉席克", + "lich": "巫妖", + "lina": "莉娜", + "lion": "莱恩", + "muerta": "琼英碧灵", + "nature's_prophet": "先知", + "necrophos": "瘟疫法师", + "oracle": "神谕者", + "outworld_destroyer": "殁境神蚀者", + "puck": "帕克", + "pugna": "帕格纳", + "queen_of_pain": "痛苦女王", + "ringmaster": "百戏之王", + "rubick": "拉比克", + "shadow_demon": "暗影恶魔", + "shadow_shaman": "暗影萨满", + "silencer": "沉默术士", + "skywrath_mage": "天怒法师", + "storm_spirit": "风暴之灵", + "tinker": "修补匠", + "warlock": "术士", + "witch_doctor": "巫医", + "zeus": "宙斯", + "abaddon": "亚巴顿", + "bane": "祸乱之源", + "batrider": "蝙蝠骑士", + "beastmaster": "兽王", + "brewmaster": "酿酒大师", + "broodmother": "育母蜘蛛", + "chen": "陈", + "clockwerk": "发条技师", + "dark_seer": "黑暗贤者", + "dark_willow": "邪影芳灵", + "dazzle": "戴泽", + "enigma": "谜团", + "invoker": "祈求者", + "io": "艾欧", + "lone_druid": "德鲁伊", + "lycan": "狼人", + "magnus": "马格纳斯", + "marci": "玛西", + "mirana": "米拉娜", + "nyx_assassin": "司夜刺客", + "pangolier": "石鳞剑士", + "phoenix": "凤凰", + "sand_king": "沙王", + "snapfire": "电炎绝手", + "techies": "工程师", + "vengeful_spirit": "复仇之魂", + "venomancer": "剧毒术士", + "visage": "维萨吉", + "void_spirit": "虚无之灵", + "windranger": "风行者", + "winter_wyvern": "寒冬飞龙" + } + # 将英文名转换为小写并去除空格,用作字典键 + key = english_name.lower().replace(' ', '_') + return hero_name_map.get(key, english_name) \ No newline at end of file