diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index e1ee07c..48dd8b9 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -12,11 +12,6 @@ repos: hooks: - id: isort - - repo: https://github.com/psf/black - rev: 23.1.0 - hooks: - - id: black - - repo: https://github.com/pycqa/flake8 rev: 6.0.0 hooks: @@ -29,19 +24,7 @@ repos: - repo: https://github.com/astral-sh/ruff-pre-commit # Ruff version. - rev: v0.0.289 + rev: "v0.1.2" hooks: - id: ruff args: [--fix, --exit-non-zero-on-fix] - - # - repo: https://github.com/pdm-project/pdm - # rev: 2.9.2 - # hooks: - # - id: pdm-lock-check - - # - repo: https://github.com/pdm-project/pdm - # rev: 2.9.2 - # hooks: - # - id: pdm-export - # args: ["-o", "requirements.txt", "--without-hashes"] - # files: ^pdm.lock$ diff --git a/StarRailUID/sruid_utils/api/hakush/requests.py b/StarRailUID/sruid_utils/api/hakush/requests.py index 43b8ea7..f2da995 100644 --- a/StarRailUID/sruid_utils/api/hakush/requests.py +++ b/StarRailUID/sruid_utils/api/hakush/requests.py @@ -40,9 +40,9 @@ async def get_lightcone_data( return None -async def get_character_index() -> Union[ - Dict[str, HakushHsrCharacterIndex], None -]: +async def get_character_index() -> ( + Union[Dict[str, HakushHsrCharacterIndex], None] +): async with AsyncClient( base_url='https://api.hakush.in/hsr/data', headers=_HEADER, @@ -54,9 +54,9 @@ async def get_character_index() -> Union[ return None -async def get_lightcone_index() -> Union[ - Dict[str, HakushHsrLightconeIndex], None -]: +async def get_lightcone_index() -> ( + Union[Dict[str, HakushHsrLightconeIndex], None] +): async with AsyncClient( base_url='https://api.hakush.in/hsr/data', headers=_HEADER, diff --git a/StarRailUID/sruid_utils/api/mys/api.py b/StarRailUID/sruid_utils/api/mys/api.py index 01a8177..42fee88 100644 --- a/StarRailUID/sruid_utils/api/mys/api.py +++ b/StarRailUID/sruid_utils/api/mys/api.py @@ -1,60 +1,70 @@ # flake8: noqa -OLD_URL = "https://api-takumi.mihoyo.com" -OS_OLD_URL = "https://api-os-takumi.mihoyo.com" -NEW_URL = "https://api-takumi-record.mihoyo.com" -OS_URL = "https://sg-public-api.hoyolab.com" -OS_INFO_URL = "https://bbs-api-os.hoyolab.com" +OLD_URL = 'https://api-takumi.mihoyo.com' +OS_OLD_URL = 'https://api-os-takumi.mihoyo.com' +NEW_URL = 'https://api-takumi-record.mihoyo.com' +OS_URL = 'https://sg-public-api.hoyolab.com' +OS_INFO_URL = 'https://bbs-api-os.hoyolab.com' -STAR_RAIL_SIGN_INFO_URL = f"{OLD_URL}/event/luna/info" -STAR_RAIL_SIGN_INFO_URL_OS = f"{OS_URL}/event/luna/os/info" -STAR_RAIL_SIGN_LIST_URL = f"{OLD_URL}/event/luna/home" -STAR_RAIL_SIGN_LIST_URL_OS = f"{OS_URL}/event/luna/os/home" -STAR_RAIL_SIGN_EXTRA_INFO_URL = f"{OLD_URL}/event/luna/extra_info" -STAR_RAIL_SIGN_EXTRA_REWARD_URL = f"{OLD_URL}/event/luna/extra_reward" -STAR_RAIL_SIGN_URL = f"{OLD_URL}/event/luna/sign" -STAR_RAIL_SIGN_URL_OS = f"{OS_URL}/event/luna/os/sign" -STAR_RAIL_MONTH_INFO_URL = f"{OLD_URL}/event/srledger/month_info" # 开拓阅历接口 +STAR_RAIL_SIGN_INFO_URL = f'{OLD_URL}/event/luna/info' +STAR_RAIL_SIGN_INFO_URL_OS = f'{OS_URL}/event/luna/os/info' +STAR_RAIL_SIGN_LIST_URL = f'{OLD_URL}/event/luna/home' +STAR_RAIL_SIGN_LIST_URL_OS = f'{OS_URL}/event/luna/os/home' +STAR_RAIL_SIGN_EXTRA_INFO_URL = f'{OLD_URL}/event/luna/extra_info' +STAR_RAIL_SIGN_EXTRA_REWARD_URL = f'{OLD_URL}/event/luna/extra_reward' +STAR_RAIL_SIGN_URL = f'{OLD_URL}/event/luna/sign' +STAR_RAIL_SIGN_URL_OS = f'{OS_URL}/event/luna/os/sign' +STAR_RAIL_MONTH_INFO_URL = ( + f'{OLD_URL}/event/srledger/month_info' +) # 开拓阅历接口 STAR_RAIL_MONTH_DETAIL_URL = ( - f"{OLD_URL}/event/srledger/month_detail" # 开拓阅历详情接口 + f'{OLD_URL}/event/srledger/month_detail' # 开拓阅历详情接口 ) -STAR_RAIL_NOTE_URL = f"{NEW_URL}/game_record/app/hkrpg/api/note" # 实时便签接口 -STAR_RAIL_NOTE_URL_OS = f"{OS_INFO_URL}/game_record/hkrpg/api/note" # OS实时便签接口 -STAR_RAIL_INDEX_URL = f"{NEW_URL}/game_record/app/hkrpg/api/index" # 角色橱窗接口 +STAR_RAIL_NOTE_URL = ( + f'{NEW_URL}/game_record/app/hkrpg/api/note' +) # 实时便签接口 +STAR_RAIL_NOTE_URL_OS = ( + f'{OS_INFO_URL}/game_record/hkrpg/api/note' +) # OS实时便签接口 +STAR_RAIL_INDEX_URL = ( + f'{NEW_URL}/game_record/app/hkrpg/api/index' +) # 角色橱窗接口 STAR_RAIL_INDEX_URL_OS = ( - f"{OS_INFO_URL}/game_record/hkrpg/api/index" # OS角色橱窗接口 + f'{OS_INFO_URL}/game_record/hkrpg/api/index' # OS角色橱窗接口 ) STAR_RAIL_AVATAR_BASIC_URL = ( - f"{NEW_URL}/game_record/app/hkrpg/api/avatar/basic" # 全部角色接口 + f'{NEW_URL}/game_record/app/hkrpg/api/avatar/basic' # 全部角色接口 ) STAR_RAIL_ROLE_BASIC_INFO_URL = ( - f"{NEW_URL}/game_record/app/hkrpg/api/role/basicInfo" # 角色基础信息接口 + f'{NEW_URL}/game_record/app/hkrpg/api/role/basicInfo' # 角色基础信息接口 ) -STAR_RAIL_ROLE_BASIC_INFO_URL_OS = f"{OS_INFO_URL}/game_record/hkrpg/api/index" +STAR_RAIL_ROLE_BASIC_INFO_URL_OS = f'{OS_INFO_URL}/game_record/hkrpg/api/index' STAR_RAIL_AVATAR_INFO_URL = ( - f"{NEW_URL}/game_record/app/hkrpg/api/avatar/info" # 角色详细信息接口 + f'{NEW_URL}/game_record/app/hkrpg/api/avatar/info' # 角色详细信息接口 ) STAR_RAIL_AVATAR_INFO_URL_OS = ( - f"{OS_INFO_URL}/game_record/hkrpg/api/avatar/info" # OS角色详细信息接口 + f'{OS_INFO_URL}/game_record/hkrpg/api/avatar/info' # OS角色详细信息接口 ) -CHALLENGE_INFO_URL = f"{NEW_URL}/game_record/app/hkrpg/api/challenge" -CHALLENGE_INFO_URL_OS = f"{OS_INFO_URL}/game_record/hkrpg/api/challenge" +CHALLENGE_INFO_URL = f'{NEW_URL}/game_record/app/hkrpg/api/challenge' +CHALLENGE_INFO_URL_OS = f'{OS_INFO_URL}/game_record/hkrpg/api/challenge' -ROGUE_INFO_URL = f"{NEW_URL}/game_record/app/hkrpg/api/rogue" # 角色模拟宇宙信息接口 +ROGUE_INFO_URL = ( + f'{NEW_URL}/game_record/app/hkrpg/api/rogue' +) # 角色模拟宇宙信息接口 ROGUE_LOCUST_INFO_URL = ( - f"{NEW_URL}/game_record/app/hkrpg/api/rogue_locust" # 角色寰宇蝗灾信息接口 + f'{NEW_URL}/game_record/app/hkrpg/api/rogue_locust' # 角色寰宇蝗灾信息接口 ) -STAR_RAIL_GACHA_LOG_URL = f"{OLD_URL}/common/gacha_record/api/getGachaLog" +STAR_RAIL_GACHA_LOG_URL = f'{OLD_URL}/common/gacha_record/api/getGachaLog' STAR_RAIL_GACHA_LOG_URL_OS = ( - f"{OS_OLD_URL}/common/gacha_record/api/getGachaLog" + f'{OS_OLD_URL}/common/gacha_record/api/getGachaLog' ) -GET_FP_URL = "https://public-data-api.mihoyo.com/device-fp/api/getFp" -GET_FP_URL_OS = "https://sg-public-data-api.hoyoverse.com/device-fp/api/getFp" +GET_FP_URL = 'https://public-data-api.mihoyo.com/device-fp/api/getFp' +GET_FP_URL_OS = 'https://sg-public-data-api.hoyoverse.com/device-fp/api/getFp' # CREATE_QRCODE = f'{OLD_URL}/event/bbs_sign_reward/gen_auth_code' -STAR_RAIL_WIDGRT_URL = f"{NEW_URL}/game_record/app/hkrpg/aapi/widget" +STAR_RAIL_WIDGRT_URL = f'{NEW_URL}/game_record/app/hkrpg/aapi/widget' _API = locals() diff --git a/StarRailUID/starrailuid_charinfo/damage/AvatarDamage/AvatarDamage.py b/StarRailUID/starrailuid_charinfo/damage/AvatarDamage/AvatarDamage.py index 87fc617..8aa07f5 100644 --- a/StarRailUID/starrailuid_charinfo/damage/AvatarDamage/AvatarDamage.py +++ b/StarRailUID/starrailuid_charinfo/damage/AvatarDamage/AvatarDamage.py @@ -2,10 +2,10 @@ import copy from typing import Dict, List from gsuid_core.logger import logger -import math + from ..Base.AvatarBase import BaseAvatar, BaseAvatarBuff -from ..Base.model import DamageInstanceSkill, DamageInstanceAvatar -from ..Role import calculate_heal, calculate_damage, calculate_shield +from ..Base.model import DamageInstanceAvatar, DamageInstanceSkill +from ..Role import calculate_damage, calculate_heal, calculate_shield class Seele(BaseAvatar): @@ -117,7 +117,9 @@ class Seele(BaseAvatar): self.avatar_level, ) damagelist4[2] += damage3 - skill_info_list.append({'name': '银狼降防终结技', 'damagelist': damagelist4}) + skill_info_list.append( + {'name': '银狼降防终结技', 'damagelist': damagelist4} + ) logger.info(skill_info_list) return skill_info_list @@ -148,7 +150,9 @@ class JingYuan(BaseAvatar): def extra_ability(self): logger.info('额外能力') - logger.info('【神君】下回合的攻击段数大于等于6段, 则其下回合的暴击伤害提高25%。') + logger.info( + '【神君】下回合的攻击段数大于等于6段, 则其下回合的暴击伤害提高25%。' + ) self.extra_ability_attribute['CriticalDamageBase'] = 0.25 logger.info('施放战技后, 暴击率提升10%') self.extra_ability_attribute['CriticalChanceBase'] = 0.1 @@ -223,7 +227,9 @@ class JingYuan(BaseAvatar): self.avatar_level, ) damagelist4[2] += damage3 - skill_info_list.append({'name': '10层神君伤害', 'damagelist': damagelist4}) + skill_info_list.append( + {'name': '10层神君伤害', 'damagelist': damagelist4} + ) logger.info(skill_info_list) return skill_info_list @@ -249,7 +255,9 @@ class Welt(BaseAvatar): def extra_ability(self): logger.info('额外能力') - logger.info('施放终结技时, 有100%基础概率使目标受到的伤害提高12%, 持续2回合。') + logger.info( + '施放终结技时, 有100%基础概率使目标受到的伤害提高12%, 持续2回合。' + ) self.extra_ability_attribute['DmgRatio'] = 0.12 logger.info('对被弱点击破的敌方目标造成的伤害提高20') self.extra_ability_attribute['AllDamageAddedRatio'] = 0.20 @@ -333,7 +341,9 @@ class Welt(BaseAvatar): damagelist4[1] = damagelist1[1] + damagelist4[1] damagelist4[2] = damagelist1[2] + damagelist4[2] damagelist4[2] += damage3 - skill_info_list.append({'name': '强化普攻', 'damagelist': damagelist4}) + skill_info_list.append( + {'name': '强化普攻', 'damagelist': damagelist4} + ) skill_multiplier = (self.Skill_num('BPSkill', 'BPSkill') / 3) * 0.8 damagelist5 = await calculate_damage( @@ -349,7 +359,9 @@ class Welt(BaseAvatar): damagelist5[1] = damagelist2[1] + damagelist5[1] damagelist5[2] = damagelist2[2] + damagelist5[2] damagelist5[2] += damage3 - skill_info_list.append({'name': '强化战技', 'damagelist': damagelist5}) + skill_info_list.append( + {'name': '强化战技', 'damagelist': damagelist5} + ) logger.info(skill_info_list) return skill_info_list @@ -378,7 +390,9 @@ class Danhengil(BaseAvatar): def extra_ability(self): logger.info('额外能力') - logger.info('对拥有虚数属性弱点的敌方目标造成伤害时, 暴击伤害提高24%。') + logger.info( + '对拥有虚数属性弱点的敌方目标造成伤害时, 暴击伤害提高24%。' + ) self.extra_ability_attribute['CriticalDamageBase'] = 0.24 async def getdamage( @@ -410,15 +424,14 @@ class Danhengil(BaseAvatar): for i in range(1, 3): add_attr_bonus = copy.deepcopy(attribute_bonus) damage_buff = min(max_buff, start_buff + (i - 1) * add_buff) - add_attr_bonus[ - 'AllDamageAddedRatio' - ] = damage_buff * injury_add + add_attr_bonus.get( - 'AllDamageAddedRatio', 0 + add_attr_bonus['AllDamageAddedRatio'] = ( + damage_buff * injury_add + + add_attr_bonus.get('AllDamageAddedRatio', 0) ) if self.avatar_rank >= 4: - add_attr_bonus[ - 'CriticalDamageBase' - ] = critical_buff + add_attr_bonus.get('CriticalDamageBase', 0) + add_attr_bonus['CriticalDamageBase'] = ( + critical_buff + add_attr_bonus.get('CriticalDamageBase', 0) + ) damage1, damage2, damage3 = await calculate_damage( base_attr, add_attr_bonus, @@ -454,15 +467,14 @@ class Danhengil(BaseAvatar): for i in range(1, 4): add_attr_bonus = copy.deepcopy(attribute_bonus) damage_buff = min(max_buff, start_buff + (i - 1) * add_buff) - add_attr_bonus[ - 'AllDamageAddedRatio' - ] = damage_buff * injury_add + add_attr_bonus.get( - 'AllDamageAddedRatio', 0 + add_attr_bonus['AllDamageAddedRatio'] = ( + damage_buff * injury_add + + add_attr_bonus.get('AllDamageAddedRatio', 0) ) if self.avatar_rank >= 4: - add_attr_bonus[ - 'CriticalDamageBase' - ] = critical_buff + add_attr_bonus.get('CriticalDamageBase', 0) + add_attr_bonus['CriticalDamageBase'] = ( + critical_buff + add_attr_bonus.get('CriticalDamageBase', 0) + ) damage1, damage2, damage3 = await calculate_damage( base_attr, add_attr_bonus, @@ -498,20 +510,19 @@ class Danhengil(BaseAvatar): for i in range(1, 6): add_attr_bonus = copy.deepcopy(attribute_bonus) damage_buff = min(max_buff, start_buff + (i - 1) * add_buff) - add_attr_bonus[ - 'AllDamageAddedRatio' - ] = damage_buff * injury_add + add_attr_bonus.get( - 'AllDamageAddedRatio', 0 + add_attr_bonus['AllDamageAddedRatio'] = ( + damage_buff * injury_add + + add_attr_bonus.get('AllDamageAddedRatio', 0) ) if self.avatar_rank >= 4: - add_attr_bonus[ - 'CriticalDamageBase' - ] = critical_buff + add_attr_bonus.get('CriticalDamageBase', 0) + add_attr_bonus['CriticalDamageBase'] = ( + critical_buff + add_attr_bonus.get('CriticalDamageBase', 0) + ) elif i >= 4: critical_buff = (i - 3) * critical_damage_add - add_attr_bonus[ - 'CriticalDamageBase' - ] = critical_buff + add_attr_bonus.get('CriticalDamageBase', 0) + add_attr_bonus['CriticalDamageBase'] = ( + critical_buff + add_attr_bonus.get('CriticalDamageBase', 0) + ) damage1, damage2, damage3 = await calculate_damage( base_attr, add_attr_bonus, @@ -547,20 +558,19 @@ class Danhengil(BaseAvatar): for i in range(1, 8): add_attr_bonus = copy.deepcopy(attribute_bonus) damage_buff = min(max_buff, start_buff + (i - 1) * add_buff) - add_attr_bonus[ - 'AllDamageAddedRatio' - ] = damage_buff * injury_add + add_attr_bonus.get( - 'AllDamageAddedRatio', 0 + add_attr_bonus['AllDamageAddedRatio'] = ( + damage_buff * injury_add + + add_attr_bonus.get('AllDamageAddedRatio', 0) ) if self.avatar_rank >= 4: - add_attr_bonus[ - 'CriticalDamageBase' - ] = critical_buff + add_attr_bonus.get('CriticalDamageBase', 0) + add_attr_bonus['CriticalDamageBase'] = ( + critical_buff + add_attr_bonus.get('CriticalDamageBase', 0) + ) elif i >= 4: critical_buff = (i - 3) * critical_damage_add - add_attr_bonus[ - 'CriticalDamageBase' - ] = critical_buff + add_attr_bonus.get('CriticalDamageBase', 0) + add_attr_bonus['CriticalDamageBase'] = ( + critical_buff + add_attr_bonus.get('CriticalDamageBase', 0) + ) damage1, damage2, damage3 = await calculate_damage( base_attr, add_attr_bonus, @@ -596,15 +606,14 @@ class Danhengil(BaseAvatar): for _ in range(1, 4): add_attr_bonus = copy.deepcopy(attribute_bonus) damage_buff = min(max_buff, 10) - add_attr_bonus[ - 'AllDamageAddedRatio' - ] = damage_buff * injury_add + add_attr_bonus.get( - 'AllDamageAddedRatio', 0 + add_attr_bonus['AllDamageAddedRatio'] = ( + damage_buff * injury_add + + add_attr_bonus.get('AllDamageAddedRatio', 0) ) critical_buff = 4 * critical_damage_add - add_attr_bonus[ - 'CriticalDamageBase' - ] = critical_buff + add_attr_bonus.get('CriticalDamageBase', 0) + add_attr_bonus['CriticalDamageBase'] = ( + critical_buff + add_attr_bonus.get('CriticalDamageBase', 0) + ) damage1, damage2, damage3 = await calculate_damage( base_attr, add_attr_bonus, @@ -666,17 +675,16 @@ class Argenti(BaseAvatar): attribute_bonus: Dict[str, float], ): talent_cc_add = self.Skill_num('Talent', 'Talent') - attribute_bonus[ - 'CriticalChanceBase' - ] = talent_cc_add * 10 + attribute_bonus.get('CriticalChanceBase', 0) + attribute_bonus['CriticalChanceBase'] = ( + talent_cc_add * 10 + attribute_bonus.get('CriticalChanceBase', 0) + ) if self.avatar_rank >= 4: attribute_bonus['CriticalDamageBase'] = 0.08 + attribute_bonus.get( 'CriticalDamageBase', 0 ) - attribute_bonus[ - 'CriticalChanceBase' - ] = talent_cc_add * 2 + attribute_bonus.get( - 'CriticalChanceBase', 0 + attribute_bonus['CriticalChanceBase'] = ( + talent_cc_add * 2 + + attribute_bonus.get('CriticalChanceBase', 0) ) damage1, damage2, damage3 = await calculate_damage( @@ -1108,7 +1116,9 @@ class Kafka(BaseAvatar): self.avatar_level, ) damagelist4[2] += damage3 - skill_info_list.append({'name': '单次持续伤害', 'damagelist': damagelist4}) + skill_info_list.append( + {'name': '单次持续伤害', 'damagelist': damagelist4} + ) # 计算追加攻击伤害 skill_multiplier = self.Skill_num('Talent', 'Talent') @@ -1372,7 +1382,9 @@ class Fuxuan(BaseAvatar): 0.05, 133, ) - skill_info_list.append({'name': '终结技治疗', 'damagelist': damagelist3}) + skill_info_list.append( + {'name': '终结技治疗', 'damagelist': damagelist3} + ) return skill_info_list @@ -1668,7 +1680,9 @@ class Qingque(BaseAvatar): self.avatar_level, ) damagelist2[2] += damage3 - skill_info_list.append({'name': '杠上开花!', 'damagelist': damagelist2}) + skill_info_list.append( + {'name': '杠上开花!', 'damagelist': damagelist2} + ) # noqa: RUF001 # 计算终结技伤害 skill_multiplier = self.Skill_num('Ultra', 'Ultra') @@ -2012,7 +2026,9 @@ class Guinaifen(BaseAvatar): self.avatar_level, ) damagelist4[2] += damage3 - skill_info_list.append({'name': '单次持续伤害', 'damagelist': damagelist4}) + skill_info_list.append( + {'name': '单次持续伤害', 'damagelist': damagelist4} + ) return skill_info_list @@ -2091,7 +2107,9 @@ class Gepard(BaseAvatar): skill_multiplier, skill_num, ) - skill_info_list.append({'name': '终结技(护盾)', 'damagelist': damagelist3}) + skill_info_list.append( + {'name': '终结技(护盾)', 'damagelist': damagelist3} + ) return skill_info_list @@ -2175,7 +2193,9 @@ class Luocha(BaseAvatar): skill_num, 1, ) - skill_info_list.append({'name': '战技治疗量', 'damagelist': damagelist3}) + skill_info_list.append( + {'name': '战技治疗量', 'damagelist': damagelist3} + ) if self.avatar_rank >= 2: add_attr_bonus = copy.deepcopy(attribute_bonus) add_attr_bonus['HealRatioBase'] = ( @@ -2190,7 +2210,10 @@ class Luocha(BaseAvatar): 1, ) skill_info_list.append( - {'name': '战技治疗量(生命<50%)(2魂)', 'damagelist': damagelist4} + { + 'name': '战技治疗量(生命<50%)(2魂)', + 'damagelist': damagelist4, + } ) damagelist5 = await calculate_shield( @@ -2201,7 +2224,10 @@ class Luocha(BaseAvatar): 1, ) skill_info_list.append( - {'name': '战技护盾量(生命>50%)(2魂)', 'damagelist': damagelist5} + { + 'name': '战技护盾量(生命>50%)(2魂)', + 'damagelist': damagelist5, + } ) # 计算天赋治疗量 @@ -2215,7 +2241,9 @@ class Luocha(BaseAvatar): skill_num, 1, ) - skill_info_list.append({'name': '天赋治疗量', 'damagelist': damagelist6}) + skill_info_list.append( + {'name': '天赋治疗量', 'damagelist': damagelist6} + ) # 计算技能树额外能力治疗量 damagelist7 = await calculate_heal( @@ -2226,7 +2254,9 @@ class Luocha(BaseAvatar): 93, 1, ) - skill_info_list.append({'name': '技能树治疗量', 'damagelist': damagelist7}) + skill_info_list.append( + {'name': '技能树治疗量', 'damagelist': damagelist7} + ) return skill_info_list @@ -2299,7 +2329,9 @@ class Bailu(BaseAvatar): for i in range(1, 3): beilv = 1 - (i * 0.15) damagelist2[0] = damagelist2[0] + heal_num * beilv - skill_info_list.append({'name': '战技治疗量', 'damagelist': damagelist2}) + skill_info_list.append( + {'name': '战技治疗量', 'damagelist': damagelist2} + ) # 计算终结技治疗量 skill_multiplier = self.Skill_num('Ultra', 'Ultra') @@ -2311,7 +2343,9 @@ class Bailu(BaseAvatar): skill_multiplier, skill_num, ) - skill_info_list.append({'name': '终结技治疗量', 'damagelist': damagelist3}) + skill_info_list.append( + {'name': '终结技治疗量', 'damagelist': damagelist3} + ) # 计算天赋生息治疗量 skill_multiplier = self.Skill_num('Talent', 'Talent') @@ -2419,7 +2453,9 @@ class Lynx(BaseAvatar): skill_multiplier, skill_num, ) - skill_info_list.append({'name': '战技治疗量', 'damagelist': damagelist2}) + skill_info_list.append( + {'name': '战技治疗量', 'damagelist': damagelist2} + ) damagelist3 = [] damagelist3.append(hp_add) skill_info_list.append( @@ -2436,7 +2472,9 @@ class Lynx(BaseAvatar): skill_multiplier, skill_num, ) - skill_info_list.append({'name': '终结技治疗量', 'damagelist': damagelist4}) + skill_info_list.append( + {'name': '终结技治疗量', 'damagelist': damagelist4} + ) # 计算天赋治疗量 skill_multiplier = self.Skill_num('Talent', 'Talent') @@ -2448,7 +2486,9 @@ class Lynx(BaseAvatar): skill_multiplier, skill_num, ) - skill_info_list.append({'name': '天赋缓回治疗量', 'damagelist': damagelist5}) + skill_info_list.append( + {'name': '天赋缓回治疗量', 'damagelist': damagelist5} + ) # 计算天赋求生反应治疗量 skill_multiplier = self.Skill_num( @@ -2548,7 +2588,9 @@ class Natasha(BaseAvatar): skill_multiplier, skill_num, ) - skill_info_list.append({'name': '战技治疗量', 'damagelist': damagelist2}) + skill_info_list.append( + {'name': '战技治疗量', 'damagelist': damagelist2} + ) # 计算战技缓回治疗量 skill_multiplier = self.Skill_num('BPSkill', 'BPSkill1') @@ -2560,7 +2602,9 @@ class Natasha(BaseAvatar): skill_multiplier, skill_num, ) - skill_info_list.append({'name': '战技缓回治疗量', 'damagelist': damagelist3}) + skill_info_list.append( + {'name': '战技缓回治疗量', 'damagelist': damagelist3} + ) # 计算终结技治疗量 skill_multiplier = self.Skill_num('Ultra', 'Ultra') @@ -2572,7 +2616,9 @@ class Natasha(BaseAvatar): skill_multiplier, skill_num, ) - skill_info_list.append({'name': '终结技治疗量', 'damagelist': damagelist4}) + skill_info_list.append( + {'name': '终结技治疗量', 'damagelist': damagelist4} + ) return skill_info_list @@ -2637,7 +2683,9 @@ class Mar7th(BaseAvatar): skill_multiplier, skill_num, ) - skill_info_list.append({'name': '战技护盾量', 'damagelist': damagelist2}) + skill_info_list.append( + {'name': '战技护盾量', 'damagelist': damagelist2} + ) # 计算终结技 skill_multiplier = self.Skill_num('Ultra', 'Ultra') @@ -2691,6 +2739,7 @@ class Mar7th(BaseAvatar): return skill_info_list + class Bronya(BaseAvatar): Buff: BaseAvatarBuff @@ -2729,12 +2778,20 @@ class Bronya(BaseAvatar): 0.44, self.avatar_level, ) - - #终结技增加伤害 - attribute_bonus['AttackAddedRatio'] = attribute_bonus.get('AttackAddedRatio', 0) + self.Skill_num('Ultra', 'Ultra_A') - add_critical_damage_base = (attribute_bonus.get('CriticalDamageBase', 0) * self.Skill_num('Ultra', 'Ultra')) + self.Skill_num('Ultra', 'Ultra_G') - attribute_bonus['CriticalDamageBase'] = attribute_bonus.get('CriticalDamageBase', 0) + add_critical_damage_base - + + # 终结技增加伤害 + attribute_bonus['AttackAddedRatio'] = attribute_bonus.get( + 'AttackAddedRatio', 0 + ) + self.Skill_num('Ultra', 'Ultra_A') + add_critical_damage_base = ( + attribute_bonus.get('CriticalDamageBase', 0) + * self.Skill_num('Ultra', 'Ultra') + ) + self.Skill_num('Ultra', 'Ultra_G') + attribute_bonus['CriticalDamageBase'] = ( + attribute_bonus.get('CriticalDamageBase', 0) + + add_critical_damage_base + ) + skill_info_list = [] # 计算普攻伤害 skill_multiplier = self.Skill_num('Normal', 'Normal') @@ -2754,10 +2811,13 @@ class Bronya(BaseAvatar): critical_damage_base_str = add_critical_damage_base * 100 damagelist2 = [] damagelist2.append(critical_damage_base_str) - skill_info_list.append({'name': '终结技提升爆伤(%)', 'damagelist': damagelist2}) + skill_info_list.append( + {'name': '终结技提升爆伤(%)', 'damagelist': damagelist2} + ) return skill_info_list + class Yukong(BaseAvatar): Buff: BaseAvatarBuff @@ -2781,7 +2841,7 @@ class Yukong(BaseAvatar): def extra_ability(self): self.extra_ability_attribute['ImaginaryAddedRatio'] = 0.15 - + async def getdamage( self, base_attr: Dict[str, float], @@ -2796,12 +2856,18 @@ class Yukong(BaseAvatar): 0.44, self.avatar_level, ) - - #终结技增加伤害 - attribute_bonus['AttackAddedRatio'] = attribute_bonus.get('AttackAddedRatio', 0) + self.Skill_num('BPSkill', 'BPSkill') - attribute_bonus['CriticalChanceBase'] = attribute_bonus.get('CriticalChanceBase', 0) + self.Skill_num('Ultra', 'Ultra_CC') - attribute_bonus['CriticalDamageBase'] = attribute_bonus.get('CriticalDamageBase', 0) + self.Skill_num('Ultra', 'Ultra_CD') - + + # 终结技增加伤害 + attribute_bonus['AttackAddedRatio'] = attribute_bonus.get( + 'AttackAddedRatio', 0 + ) + self.Skill_num('BPSkill', 'BPSkill') + attribute_bonus['CriticalChanceBase'] = attribute_bonus.get( + 'CriticalChanceBase', 0 + ) + self.Skill_num('Ultra', 'Ultra_CC') + attribute_bonus['CriticalDamageBase'] = attribute_bonus.get( + 'CriticalDamageBase', 0 + ) + self.Skill_num('Ultra', 'Ultra_CD') + skill_info_list = [] # 计算普攻伤害 skill_multiplier = self.Skill_num('Normal', 'Normal') @@ -2845,7 +2911,8 @@ class Yukong(BaseAvatar): skill_info_list.append({'name': '终结技', 'damagelist': damagelist3}) return skill_info_list - + + class Sushang(BaseAvatar): Buff: BaseAvatarBuff @@ -2862,13 +2929,17 @@ class Sushang(BaseAvatar): pass def eidolons(self): - self.eidolon_attribute['SpeedAddedRatio'] = self.Skill_num('Talent', 'Talent') + self.eidolon_attribute['SpeedAddedRatio'] = self.Skill_num( + 'Talent', 'Talent' + ) if self.avatar_rank >= 6: - self.eidolon_attribute['SpeedAddedRatio'] = self.Skill_num('Talent', 'Talent') * 2 + self.eidolon_attribute['SpeedAddedRatio'] = ( + self.Skill_num('Talent', 'Talent') * 2 + ) def extra_ability(self): self.extra_ability_attribute['jianshiDmgAdd'] = 0.2 - + async def getdamage( self, base_attr: Dict[str, float], @@ -2883,7 +2954,7 @@ class Sushang(BaseAvatar): 0.44, self.avatar_level, ) - + skill_info_list = [] # 计算普攻伤害 skill_multiplier = self.Skill_num('Normal', 'Normal') @@ -2898,8 +2969,8 @@ class Sushang(BaseAvatar): ) damagelist1[2] += damage3 skill_info_list.append({'name': '普攻', 'damagelist': damagelist1}) - - #计算剑势附加伤害 + + # 计算剑势附加伤害 skill_multiplier = self.Skill_num('BPSkill', 'BPSkill_F') damagelist2 = await calculate_damage( base_attr, @@ -2910,7 +2981,7 @@ class Sushang(BaseAvatar): skill_multiplier, self.avatar_level, ) - + # 计算战技伤害 skill_multiplier = self.Skill_num('BPSkill', 'BPSkill') damagelist3 = await calculate_damage( @@ -2926,7 +2997,7 @@ class Sushang(BaseAvatar): damagelist3[1] += damagelist2[1] damagelist3[2] += damage3 + damagelist2[2] skill_info_list.append({'name': '战技', 'damagelist': damagelist3}) - + # 计算强化战技伤害 skill_multiplier = self.Skill_num('BPSkill', 'BPSkill') damagelist4 = await calculate_damage( @@ -2942,9 +3013,11 @@ class Sushang(BaseAvatar): damagelist4[1] += damagelist2[1] * 3 damagelist4[2] += damage3 + damagelist2[2] * 3 skill_info_list.append({'name': '强化战技', 'damagelist': damagelist4}) - - skill_info_list.append({'name': '剑势附加伤害', 'damagelist': damagelist2}) - + + skill_info_list.append( + {'name': '剑势附加伤害', 'damagelist': damagelist2} + ) + # 计算终结技伤害 skill_multiplier = self.Skill_num('Ultra', 'Ultra') damagelist5 = await calculate_damage( @@ -2958,9 +3031,10 @@ class Sushang(BaseAvatar): ) damagelist1[2] += damage3 skill_info_list.append({'name': '终结技', 'damagelist': damagelist5}) - + return skill_info_list + class AvatarDamage: @classmethod def create( diff --git a/StarRailUID/starrailuid_charinfo/damage/Weapon/Weapon.py b/StarRailUID/starrailuid_charinfo/damage/Weapon/Weapon.py index 0e746cf..52ce2aa 100644 --- a/StarRailUID/starrailuid_charinfo/damage/Weapon/Weapon.py +++ b/StarRailUID/starrailuid_charinfo/damage/Weapon/Weapon.py @@ -1,9 +1,9 @@ import json -from typing import Dict from pathlib import Path +from typing import Dict -from ..Base.WeaponBase import BaseWeapon from ..Base.model import DamageInstanceWeapon +from ..Base.WeaponBase import BaseWeapon path = Path(__file__).parent.parent with Path.open(path / 'Excel' / 'weapon_effect.json', encoding='utf-8') as f: @@ -269,16 +269,19 @@ class BeforeDawn(BaseWeapon): attribute_bonus: Dict[str, float], ): bp_skill_dmg_add = attribute_bonus.get('BPSkillDmgAdd', 0) - attribute_bonus['BPSkillDmgAdd'] = bp_skill_dmg_add + ( - weapon_effect['23010']['Param']['e_dmg'][self.weapon_rank - 1] + attribute_bonus['BPSkillDmgAdd'] = ( + bp_skill_dmg_add + + (weapon_effect['23010']['Param']['e_dmg'][self.weapon_rank - 1]) ) ultra_dmg_add = attribute_bonus.get('UltraDmgAdd', 0) - attribute_bonus['UltraDmgAdd'] = ultra_dmg_add + ( - weapon_effect['23010']['Param']['r_dmg'][self.weapon_rank - 1] + attribute_bonus['UltraDmgAdd'] = ( + ultra_dmg_add + + (weapon_effect['23010']['Param']['r_dmg'][self.weapon_rank - 1]) ) talent_dmg_add = attribute_bonus.get('TalentDmgAdd', 0) - attribute_bonus['TalentDmgAdd'] = talent_dmg_add + ( - weapon_effect['23010']['Param']['t_dmg'][self.weapon_rank - 1] + attribute_bonus['TalentDmgAdd'] = ( + talent_dmg_add + + (weapon_effect['23010']['Param']['t_dmg'][self.weapon_rank - 1]) ) return attribute_bonus @@ -492,10 +495,13 @@ class GeniusesRepose(BaseWeapon): ): if await self.check(): critical_chance_base = attribute_bonus.get('CriticalDamageBase', 0) - attribute_bonus['CriticalDamageBase'] = critical_chance_base + ( - weapon_effect['21020']['Param']['CriticalDamageBase'][ - self.weapon_rank - 1 - ] + attribute_bonus['CriticalDamageBase'] = ( + critical_chance_base + + ( + weapon_effect['21020']['Param']['CriticalDamageBase'][ + self.weapon_rank - 1 + ] + ) ) return attribute_bonus @@ -518,8 +524,9 @@ class MaketheWorldClamor(BaseWeapon): attribute_bonus: Dict[str, float], ): ultra_dmg_add = attribute_bonus.get('UltraDmgAdd', 0) - attribute_bonus['UltraDmgAdd'] = ultra_dmg_add + ( - weapon_effect['21013']['Param']['r_dmg'][self.weapon_rank - 1] + attribute_bonus['UltraDmgAdd'] = ( + ultra_dmg_add + + (weapon_effect['21013']['Param']['r_dmg'][self.weapon_rank - 1]) ) return attribute_bonus @@ -544,8 +551,13 @@ class TheBirthoftheSelf(BaseWeapon): ): if await self.check(): talent_dmg_add = attribute_bonus.get('TalentDmgAdd', 0) - attribute_bonus['TalentDmgAdd'] = talent_dmg_add + ( - weapon_effect['21006']['Param']['t_dmg'][self.weapon_rank - 1] + attribute_bonus['TalentDmgAdd'] = ( + talent_dmg_add + + ( + weapon_effect['21006']['Param']['t_dmg'][ + self.weapon_rank - 1 + ] + ) ) return attribute_bonus return attribute_bonus @@ -1473,12 +1485,14 @@ class CollapsingSky(BaseWeapon): attribute_bonus: Dict[str, float], ): normal_dmg_add = attribute_bonus.get('NormalDmgAdd', 0) - attribute_bonus['NormalDmgAdd'] = normal_dmg_add + ( - weapon_effect['20002']['Param']['a_dmg'][self.weapon_rank - 1] + attribute_bonus['NormalDmgAdd'] = ( + normal_dmg_add + + (weapon_effect['20002']['Param']['a_dmg'][self.weapon_rank - 1]) ) bp_skill_dmg_add = attribute_bonus.get('BPSkillDmgAdd', 0) - attribute_bonus['BPSkillDmgAdd'] = bp_skill_dmg_add + ( - weapon_effect['20002']['Param']['e_dmg'][self.weapon_rank - 1] + attribute_bonus['BPSkillDmgAdd'] = ( + bp_skill_dmg_add + + (weapon_effect['20002']['Param']['e_dmg'][self.weapon_rank - 1]) ) return attribute_bonus @@ -1631,8 +1645,9 @@ class DataBank(BaseWeapon): attribute_bonus: Dict[str, float], ): ultra_dmg_add = attribute_bonus.get('UltraDmgAdd', 0) - attribute_bonus['UltraDmgAdd'] = ultra_dmg_add + ( - weapon_effect['20006']['Param']['r_dmg'][self.weapon_rank - 1] + attribute_bonus['UltraDmgAdd'] = ( + ultra_dmg_add + + (weapon_effect['20006']['Param']['r_dmg'][self.weapon_rank - 1]) ) return attribute_bonus @@ -1670,12 +1685,13 @@ class Thisbodyisasword(BaseWeapon): resistance_penetration = attribute_bonus.get( 'AllDamageResistancePenetration', 0 ) - attribute_bonus[ - 'AllDamageResistancePenetration' - ] = resistance_penetration + ( - weapon_effect['23014']['Param']['ResistancePenetration'][ - self.weapon_rank - 1 - ] + attribute_bonus['AllDamageResistancePenetration'] = ( + resistance_penetration + + ( + weapon_effect['23014']['Param']['ResistancePenetration'][ + self.weapon_rank - 1 + ] + ) ) return attribute_bonus @@ -1748,7 +1764,7 @@ class WorrisomeBlissf(BaseWeapon): return attribute_bonus -# 片刻,留在眼底 +# 片刻, 留在眼底 class AnInstanceBeforeAGaze(BaseWeapon): weapon_base_attributes: Dict @@ -1756,7 +1772,7 @@ class AnInstanceBeforeAGaze(BaseWeapon): super().__init__(weapon) async def check(self): - # 当装备者施放终结技时,根据装备者的能量上限,提高装备者终结技造成的伤害:每点能量提高0.36%,最多计入180点。 + # 当装备者施放终结技时, 根据装备者的能量上限, 提高装备者终结技造成的伤害: 每点能量提高0.36%, 最多计入180点。 return True async def weapon_ability( @@ -1787,7 +1803,7 @@ class TimeWaitsforNoOne(BaseWeapon): super().__init__(weapon) async def check(self): - # 当装备者对我方目标提供治疗时,记录治疗量。当任意我方目标施放攻击后,根据记录治疗量的36%,对随机1个受到攻击的敌方目标造成基于装备者属性的附加伤害 + # 当装备者对我方目标提供治疗时,记录治疗量。当任意我方目标施放攻击后,根据记录治疗量的36%,对随机1个受到攻击的敌方目标造成基于装备者属性的附加伤害 pass async def weapon_ability( @@ -1807,7 +1823,7 @@ class EchoesoftheCoffin(BaseWeapon): super().__init__(weapon) async def check(self): - # 当装备者施放终结技后,使我方全体速度提高12点,持续1回合。 + # 当装备者施放终结技后,使我方全体速度提高12点,持续1回合。 return True async def weapon_ability( @@ -1818,8 +1834,13 @@ class EchoesoftheCoffin(BaseWeapon): ): if await self.check(): speed_delta = attribute_bonus.get('SpeedDelta', 0) - attribute_bonus['SpeedDelta'] = speed_delta + ( - weapon_effect['23008']['Param']['speed'][self.weapon_rank - 1] + attribute_bonus['SpeedDelta'] = ( + speed_delta + + ( + weapon_effect['23008']['Param']['speed'][ + self.weapon_rank - 1 + ] + ) ) return attribute_bonus @@ -1832,7 +1853,7 @@ class NightofFright(BaseWeapon): super().__init__(weapon) async def check(self): - # 当装备者为我方目标提供治疗时,使该目标的攻击力提高2.3%,该效果最多叠加5层 + # 当装备者为我方目标提供治疗时,使该目标的攻击力提高2.3%,该效果最多叠加5层 return True async def weapon_ability( @@ -1874,10 +1895,13 @@ class PostOpConversation(BaseWeapon): ): if await self.check(): Ultra_HealRatioBase = attribute_bonus.get('Ultra_HealRatioBase', 0) - attribute_bonus['Ultra_HealRatioBase'] = Ultra_HealRatioBase + ( - weapon_effect['21000']['Param']['Ultra_HealRatioBase'][ - self.weapon_rank - 1 - ] + attribute_bonus['Ultra_HealRatioBase'] = ( + Ultra_HealRatioBase + + ( + weapon_effect['21000']['Param']['Ultra_HealRatioBase'][ + self.weapon_rank - 1 + ] + ) ) return attribute_bonus @@ -1910,7 +1934,7 @@ class PerfectTiming(BaseWeapon): super().__init__(weapon) async def check(self): - # 使装备者的治疗量提高,提高数值等同于效果抵抗的33%,最多使治疗量提高15%。 + # 使装备者的治疗量提高, 提高数值等同于效果抵抗的33%, 最多使治疗量提高15%。 return True async def weapon_ability( @@ -1965,7 +1989,7 @@ class WarmthShortensColdNights(BaseWeapon): super().__init__(weapon) async def check(self): - # 施放普攻或战技后,为我方全体回复等同于各自生命上限2%的生命值。 + # 施放普攻或战技后, 为我方全体回复等同于各自生命上限2%的生命值。 pass async def weapon_ability( @@ -1977,7 +2001,7 @@ class WarmthShortensColdNights(BaseWeapon): return attribute_bonus -# 嘿,我在这儿 +# 嘿,我在这儿 class HeyOverHere(BaseWeapon): weapon_base_attributes: Dict @@ -1985,7 +2009,7 @@ class HeyOverHere(BaseWeapon): super().__init__(weapon) async def check(self): - # 当装备者施放战技时,治疗量提高16%,持续2回合。 + # 当装备者施放战技时, 治疗量提高16%,持续2回合。 return True async def weapon_ability( @@ -1996,10 +2020,13 @@ class HeyOverHere(BaseWeapon): ): if await self.check(): HealRatioBase = attribute_bonus.get('HealRatioBase', 0) - attribute_bonus['HealRatioBase'] = HealRatioBase + ( - weapon_effect['22001']['Param']['HealRatioBase'][ - self.weapon_rank - 1 - ] + attribute_bonus['HealRatioBase'] = ( + HealRatioBase + + ( + weapon_effect['22001']['Param']['HealRatioBase'][ + self.weapon_rank - 1 + ] + ) ) return attribute_bonus @@ -2012,7 +2039,7 @@ class Cornucopia(BaseWeapon): super().__init__(weapon) async def check(self): - # 装备者施放战技和终结技时,治疗量提高12%。 + # 装备者施放战技和终结技时, 治疗量提高12%。 return True async def weapon_ability( @@ -2023,20 +2050,24 @@ class Cornucopia(BaseWeapon): ): if await self.check(): Ultra_HealRatioBase = attribute_bonus.get('Ultra_HealRatioBase', 0) - attribute_bonus['Ultra_HealRatioBase'] = Ultra_HealRatioBase + ( - weapon_effect['20001']['Param']['HealRatioBase'][ - self.weapon_rank - 1 - ] + attribute_bonus['Ultra_HealRatioBase'] = ( + Ultra_HealRatioBase + + ( + weapon_effect['20001']['Param']['HealRatioBase'][ + self.weapon_rank - 1 + ] + ) ) BPSkill_HealRatioBase = attribute_bonus.get( 'BPSkill_HealRatioBase', 0 ) - attribute_bonus[ - 'BPSkill_HealRatioBase' - ] = BPSkill_HealRatioBase + ( - weapon_effect['20001']['Param']['HealRatioBase'][ - self.weapon_rank - 1 - ] + attribute_bonus['BPSkill_HealRatioBase'] = ( + BPSkill_HealRatioBase + + ( + weapon_effect['20001']['Param']['HealRatioBase'][ + self.weapon_rank - 1 + ] + ) ) return attribute_bonus @@ -2049,7 +2080,7 @@ class FineFruit(BaseWeapon): super().__init__(weapon) async def check(self): - # 战斗开始时,立即为我方全体恢复6点能量。 + # 战斗开始时, 立即为我方全体恢复6点能量。 pass async def weapon_ability( @@ -2069,7 +2100,7 @@ class Multiplication(BaseWeapon): super().__init__(weapon) async def check(self): - # 战斗开始时,立即为我方全体恢复6点能量。 + # 战斗开始时, 立即为我方全体恢复6点能量。 pass async def weapon_ability( @@ -2089,7 +2120,7 @@ class ButtheBattleIsnotOver(BaseWeapon): super().__init__(weapon) async def check(self): - # 当装备者施放战技后,使下一个行动的我方【其他目标】造成的伤害提高30% + # 当装备者施放战技后, 使下一个行动的我方【其他目标】造成的伤害提高30% pass async def weapon_ability( @@ -2109,7 +2140,7 @@ class MemoriesofthePast(BaseWeapon): super().__init__(weapon) async def check(self): - # 装备者施放攻击后,额外恢复4点能量 + # 装备者施放攻击后, 额外恢复4点能量 pass async def weapon_ability( @@ -2129,7 +2160,7 @@ class PlanetaryRendezvous(BaseWeapon): super().__init__(weapon) async def check(self): - # 当我方目标造成与装备者相同属性的伤害时,造成的伤害提高12%。 + # 当我方目标造成与装备者相同属性的伤害时, 造成的伤害提高12%。 pass async def weapon_ability( @@ -2139,15 +2170,18 @@ class PlanetaryRendezvous(BaseWeapon): attribute_bonus: Dict[str, float], ): all_damage_added_ratio = attribute_bonus.get('AllDamageAddedRatio', 0) - attribute_bonus['AllDamageAddedRatio'] = all_damage_added_ratio + ( - weapon_effect['21011']['Param']['AllDamageAddedRatio'][ - self.weapon_rank - 1 - ] + attribute_bonus['AllDamageAddedRatio'] = ( + all_damage_added_ratio + + ( + weapon_effect['21011']['Param']['AllDamageAddedRatio'][ + self.weapon_rank - 1 + ] + ) ) return attribute_bonus -# 舞!舞!舞! +# 舞! 舞! 舞! class DanceDanceDance(BaseWeapon): weapon_base_attributes: Dict @@ -2155,7 +2189,7 @@ class DanceDanceDance(BaseWeapon): super().__init__(weapon) async def check(self): - # 当装备者施放终结技后,我方全体行动提前16%。 + # 当装备者施放终结技后, 我方全体行动提前16%。 pass async def weapon_ability( @@ -2195,7 +2229,7 @@ class CarvetheMoonWeavetheClouds(BaseWeapon): super().__init__(weapon) async def check(self): - # 在战斗开始时以及当装备者回合开始时,随机生效1个效果 + # 在战斗开始时以及当装备者回合开始时,随机生效1个效果 # 使我方全体攻击力提高10% # 使我方全体暴击伤害提高12% # 暂时固定只算攻击 @@ -2208,10 +2242,13 @@ class CarvetheMoonWeavetheClouds(BaseWeapon): attribute_bonus: Dict[str, float], ): AttackAddedRatio = attribute_bonus.get('AttackAddedRatio', 0) - attribute_bonus['AttackAddedRatio'] = AttackAddedRatio + ( - weapon_effect['21032']['Param']['AttackAddedRatio'][ - self.weapon_rank - 1 - ] + attribute_bonus['AttackAddedRatio'] = ( + AttackAddedRatio + + ( + weapon_effect['21032']['Param']['AttackAddedRatio'][ + self.weapon_rank - 1 + ] + ) ) return attribute_bonus @@ -2224,7 +2261,7 @@ class Chorus(BaseWeapon): super().__init__(weapon) async def check(self): - # 进入战斗后,使我方全体的攻击力提高8% + # 进入战斗后,使我方全体的攻击力提高8% pass async def weapon_ability( @@ -2234,10 +2271,13 @@ class Chorus(BaseWeapon): attribute_bonus: Dict[str, float], ): AttackAddedRatio = attribute_bonus.get('AttackAddedRatio', 0) - attribute_bonus['AttackAddedRatio'] = AttackAddedRatio + ( - weapon_effect['20005']['Param']['AttackAddedRatio'][ - self.weapon_rank - 1 - ] + attribute_bonus['AttackAddedRatio'] = ( + AttackAddedRatio + + ( + weapon_effect['20005']['Param']['AttackAddedRatio'][ + self.weapon_rank - 1 + ] + ) ) return attribute_bonus @@ -2250,7 +2290,7 @@ class MeshingCogs(BaseWeapon): super().__init__(weapon) async def check(self): - # 使装备者施放攻击或受到攻击后,额外恢复4点能量 + # 使装备者施放攻击或受到攻击后,额外恢复4点能量 pass async def weapon_ability( @@ -2270,7 +2310,7 @@ class Mediation(BaseWeapon): super().__init__(weapon) async def check(self): - # 当装备者施放终结技后,使我方全体速度提高12点,持续1回合。 + # 当装备者施放终结技后,使我方全体速度提高12点,持续1回合。 return True async def weapon_ability( @@ -2281,8 +2321,13 @@ class Mediation(BaseWeapon): ): if await self.check(): speed_delta = attribute_bonus.get('SpeedDelta', 0) - attribute_bonus['SpeedDelta'] = speed_delta + ( - weapon_effect['20019']['Param']['speed'][self.weapon_rank - 1] + attribute_bonus['SpeedDelta'] = ( + speed_delta + + ( + weapon_effect['20019']['Param']['speed'][ + self.weapon_rank - 1 + ] + ) ) return attribute_bonus diff --git a/StarRailUID/starrailuid_charinfo/draw_char_img.py b/StarRailUID/starrailuid_charinfo/draw_char_img.py index 9388a23..b2d23f3 100644 --- a/StarRailUID/starrailuid_charinfo/draw_char_img.py +++ b/StarRailUID/starrailuid_charinfo/draw_char_img.py @@ -5,29 +5,14 @@ import textwrap from pathlib import Path from typing import Dict, Union -from PIL import Image, ImageDraw from gsuid_core.logger import logger from gsuid_core.utils.image.convert import convert_img from gsuid_core.utils.image.image_tools import draw_text_by_line +from PIL import Image, ImageDraw -from .to_data import api_to_dict from ..utils.error_reply import CHAR_HINT -from .cal_damage import cal_info, cal_char_info -from ..utils.fonts.first_world import fw_font_28 from ..utils.excel.read_excel import light_cone_ranks -from ..utils.map.name_covert import name_to_avatar_id, alias_to_char_name -from ..utils.map.SR_MAP_PATH import ( - RelicId2Rarity, - AvatarRelicScore, - avatarId2Name, -) -from ..utils.resource.RESOURCE_PATH import ( - RELIC_PATH, - SKILL_PATH, - PLAYER_PATH, - WEAPON_PATH, - CHAR_PORTRAIT_PATH, -) +from ..utils.fonts.first_world import fw_font_28 from ..utils.fonts.starrail_fonts import ( sr_font_18, sr_font_20, @@ -38,6 +23,21 @@ from ..utils.fonts.starrail_fonts import ( sr_font_34, sr_font_38, ) +from ..utils.map.name_covert import alias_to_char_name, name_to_avatar_id +from ..utils.map.SR_MAP_PATH import ( + AvatarRelicScore, + RelicId2Rarity, + avatarId2Name, +) +from ..utils.resource.RESOURCE_PATH import ( + CHAR_PORTRAIT_PATH, + PLAYER_PATH, + RELIC_PATH, + SKILL_PATH, + WEAPON_PATH, +) +from .cal_damage import cal_char_info, cal_info +from .to_data import api_to_dict Excel_path = Path(__file__).parent / 'damage' with Path.open(Excel_path / 'Excel' / 'SkillData.json', encoding='utf-8') as f: diff --git a/StarRailUID/starrailuid_charinfo/get_char_img.py b/StarRailUID/starrailuid_charinfo/get_char_img.py index 4afebb2..533cbca 100644 --- a/StarRailUID/starrailuid_charinfo/get_char_img.py +++ b/StarRailUID/starrailuid_charinfo/get_char_img.py @@ -130,7 +130,9 @@ async def get_char_args( if isinstance(char_data, str): return char_data else: - for i, s in enumerate(['头部', '手部', '躯干', '腿部', '位面球', '连结绳']): + for i, s in enumerate( + ['头部', '手部', '躯干', '腿部', '位面球', '连结绳'] + ): if '赤沙' in part: continue if part[-1] in PieceName_ilst[i]: diff --git a/StarRailUID/starrailuid_charinfo/mono/Character.py b/StarRailUID/starrailuid_charinfo/mono/Character.py index 0bad6ea..db77775 100644 --- a/StarRailUID/starrailuid_charinfo/mono/Character.py +++ b/StarRailUID/starrailuid_charinfo/mono/Character.py @@ -96,18 +96,18 @@ class Character: set_property = status_add.Property set_value = status_add.Value if set_property != '': - self.add_attr[ - set_property - ] = set_value + self.add_attr.get(set_property, 0) + self.add_attr[set_property] = ( + set_value + self.add_attr.get(set_property, 0) + ) if count == 4: status_add = RelicSetSkill.RelicSet[str(set_id)]['4'] if status_add: set_property = status_add.Property set_value = status_add.Value if set_property != '': - self.add_attr[ - set_property - ] = set_value + self.add_attr.get(set_property, 0) + self.add_attr[set_property] = ( + set_value + self.add_attr.get(set_property, 0) + ) # logger.info(json.dumps(self.base_attributes)) # logger.info(json.dumps(self.add_attr)) diff --git a/StarRailUID/starrailuid_charinfo/to_card.py b/StarRailUID/starrailuid_charinfo/to_card.py index 09eae2e..13551d7 100644 --- a/StarRailUID/starrailuid_charinfo/to_card.py +++ b/StarRailUID/starrailuid_charinfo/to_card.py @@ -54,7 +54,9 @@ async def draw_enka_card(uid: str, char_list: List, showfrom: int = 0): return await convert_img(Image.new('RGBA', (0, 1), (255, 255, 255))) else: line1 = f'UID {uid} 刷新成功' - line2 = f'可以使用 sr查询{char_data_list[0]["avatarName"]} 查询详情角色面板' + line2 = ( + f'可以使用 sr查询{char_data_list[0]["avatarName"]} 查询详情角色面板' + ) char_num = len(char_data_list) if char_num <= 4: based_w, based_h = 1380, 926 diff --git a/StarRailUID/starrailuid_config/config_default.py b/StarRailUID/starrailuid_config/config_default.py index d0d4beb..a025653 100644 --- a/StarRailUID/starrailuid_config/config_default.py +++ b/StarRailUID/starrailuid_config/config_default.py @@ -8,7 +8,9 @@ from gsuid_core.utils.plugins_config.models import ( ) CONIFG_DEFAULT: Dict[str, GSC] = { - 'SignTime': GsListStrConfig('每晚签到时间设置', '每晚米游社签到时间设置(时,分)', ['0', '38']), + 'SignTime': GsListStrConfig( + '每晚签到时间设置', '每晚米游社签到时间设置(时,分)', ['0', '38'] + ), 'SignReportSimple': GsBoolConfig( '简洁签到报告', '开启后可以大大减少每日签到报告字数', diff --git a/StarRailUID/starrailuid_gachalog/__init__.py b/StarRailUID/starrailuid_gachalog/__init__.py index 2c126c1..e852088 100644 --- a/StarRailUID/starrailuid_gachalog/__init__.py +++ b/StarRailUID/starrailuid_gachalog/__init__.py @@ -39,6 +39,8 @@ async def get_gachalog_by_link(bot: Bot, ev: Event): if ev.command.startswith('强制'): await bot.logger.info('[WARNING]本次为强制刷新') is_force = True - await bot.send(f'UID{uid}开始执行[刷新抽卡记录],需要一定时间...请勿重复触发!') + await bot.send( + f'UID{uid}开始执行[刷新抽卡记录],需要一定时间...请勿重复触发!' + ) im = await save_gachalogs(uid, gacha_url, None, is_force) return await bot.send(im) diff --git a/StarRailUID/starrailuid_note/__init__.py b/StarRailUID/starrailuid_note/__init__.py index e20174e..545a1bf 100644 --- a/StarRailUID/starrailuid_note/__init__.py +++ b/StarRailUID/starrailuid_note/__init__.py @@ -1,13 +1,13 @@ -from gsuid_core.sv import SV from gsuid_core.bot import Bot from gsuid_core.models import Event +from gsuid_core.sv import SV +from gsuid_core.utils.database.models import GsUser -from .note_text import award -from ..utils.api import get_sqla from ..utils.convert import get_uid -from ..utils.sr_prefix import PREFIX from ..utils.error_reply import UID_HINT +from ..utils.sr_prefix import PREFIX from .draw_note_card import draw_note_img +from .note_text import award sv_get_monthly_data = SV('sr查询月历') @@ -15,8 +15,7 @@ sv_get_monthly_data = SV('sr查询月历') # 群聊内 每月统计 功能 @sv_get_monthly_data.on_fullmatch(f'{PREFIX}每月统计') async def send_monthly_data(bot: Bot, ev: Event): - sqla = get_sqla(ev.bot_id) - sr_uid = await sqla.get_bind_sruid(ev.user_id) + sr_uid = await GsUser.get_bind_sruid(ev.user_id) if sr_uid is None: return UID_HINT await bot.send(await award(sr_uid)) diff --git a/StarRailUID/starrailuid_note/note_text.py b/StarRailUID/starrailuid_note/note_text.py index c78ef07..4bfc61c 100644 --- a/StarRailUID/starrailuid_note/note_text.py +++ b/StarRailUID/starrailuid_note/note_text.py @@ -3,7 +3,7 @@ from datetime import datetime from ..utils.mys_api import mys_api from ..utils.error_reply import get_error -month_im = '''============== +month_im = """============== SR_UID:{} ============== 本日获取星琼:{} @@ -19,7 +19,7 @@ SR_UID:{} 上月获取星轨通票&星轨专票:{} ============== 星琼收入组成: -{}==============''' +{}==============""" async def award(uid) -> str: diff --git a/StarRailUID/starrailuid_resource/__init__.py b/StarRailUID/starrailuid_resource/__init__.py index 7ebeeea..55df6fc 100644 --- a/StarRailUID/starrailuid_resource/__init__.py +++ b/StarRailUID/starrailuid_resource/__init__.py @@ -17,5 +17,7 @@ async def send_download_resource_msg(bot: Bot, ev: Event): async def startup(): - logger.info('[sr资源文件下载] 正在检查与下载缺失的资源文件,可能需要较长时间,请稍等') + logger.info( + '[sr资源文件下载] 正在检查与下载缺失的资源文件,可能需要较长时间,请稍等' + ) logger.info(f'[sr资源文件下载] {await check_use()}') diff --git a/StarRailUID/starrailuid_signin/__init__.py b/StarRailUID/starrailuid_signin/__init__.py index c3c7991..466afc5 100644 --- a/StarRailUID/starrailuid_signin/__init__.py +++ b/StarRailUID/starrailuid_signin/__init__.py @@ -65,7 +65,9 @@ async def send_daily_sign(): single['msg'], 'direct', qid, single['bot_id'], '', '' ) except Exception as e: - logger.warning(f'[SR每日全部签到] QQ {qid} 私聊推送失败!错误信息:{e}') + logger.warning( + f'[SR每日全部签到] QQ {qid} 私聊推送失败!错误信息:{e}' + ) await asyncio.sleep(0.5) logger.info('[SR每日全部签到]私聊推送完成') @@ -74,7 +76,9 @@ async def send_daily_sign(): # 根据succee数判断是否为简洁推送 if group_msg_list[gid]['success'] >= 0: report = ( - '以下为签到失败报告:{}'.format(group_msg_list[gid]['push_message']) + '以下为签到失败报告:{}'.format( + group_msg_list[gid]['push_message'] + ) if group_msg_list[gid]['push_message'] != '' else '' ) diff --git a/StarRailUID/starrailuid_signin/sign.py b/StarRailUID/starrailuid_signin/sign.py index c014b64..16c92b4 100644 --- a/StarRailUID/starrailuid_signin/sign.py +++ b/StarRailUID/starrailuid_signin/sign.py @@ -57,11 +57,15 @@ async def sign_in(sr_uid: str) -> str: Header['x-rpc-challenge'] = ch Header['x-rpc-validate'] = vl Header['x-rpc-seccode'] = f'{vl}|jordan' - logger.info(f'[SR签到] {sr_uid} 已获取验证码, 等待时间{delay}秒') + logger.info( + f'[SR签到] {sr_uid} 已获取验证码, 等待时间{delay}秒' + ) await asyncio.sleep(delay) else: delay = 605 + random.randint(1, 120) - logger.info(f'[SR签到] {sr_uid} 未获取验证码,等待{delay}秒后重试...') + logger.info( + f'[SR签到] {sr_uid} 未获取验证码,等待{delay}秒后重试...' + ) await asyncio.sleep(delay) continue logger.info('配置文件暂未开启[跳过无感验证],结束本次任务...') @@ -70,7 +74,9 @@ async def sign_in(sr_uid: str) -> str: if index == 0: logger.info(f'[SR签到] {sr_uid} 该用户无校验码!') else: - logger.info(f'[SR签到] [无感验证] {sr_uid} 该用户重试 {index} 次验证成功!') + logger.info( + f'[SR签到] [无感验证] {sr_uid} 该用户重试 {index} 次验证成功!' + ) break if (int(str(sr_uid)[0]) > 5) and (sign_data.code == 'ok'): # 国际服签到无risk_code字段 @@ -103,7 +109,9 @@ async def sign_in(sr_uid: str) -> str: sign_missed -= 1 sign_missed = sign_info.sign_cnt_missed or sign_missed im = f'{mes_im}!\n{get_im}\n本月漏签次数:{sign_missed}' - logger.info(f'[SR签到] {sr_uid} 签到完成, 结果: {mes_im}, 漏签次数: {sign_missed}') + logger.info( + f'[SR签到] {sr_uid} 签到完成, 结果: {mes_im}, 漏签次数: {sign_missed}' + ) return im @@ -163,7 +171,9 @@ async def daily_sign(): delay = 1 else: delay = 50 + random.randint(3, 45) - logger.info(f'[SR签到] 已签到{len(tasks)}个用户, 等待{delay}秒进行下一次签到') + logger.info( + f'[SR签到] 已签到{len(tasks)}个用户, 等待{delay}秒进行下一次签到' + ) tasks.clear() already = 0 await asyncio.sleep(delay) diff --git a/StarRailUID/starrailuid_stamina/stamina_text.py b/StarRailUID/starrailuid_stamina/stamina_text.py index bbb8828..651471c 100644 --- a/StarRailUID/starrailuid_stamina/stamina_text.py +++ b/StarRailUID/starrailuid_stamina/stamina_text.py @@ -5,12 +5,12 @@ from gsuid_core.logger import logger from ..utils.mys_api import mys_api from ..utils.error_reply import get_error -daily_im = '''*数据刷新可能存在一定延迟,请以当前游戏实际数据为准 +daily_im = """*数据刷新可能存在一定延迟,请以当前游戏实际数据为准 ============== 开拓力:{}/{}{} 委托执行: 总数/完成/上限:{}/{}/{} -{}''' +{}""" def seconds2hours(seconds: int) -> str: diff --git a/StarRailUID/starrailuid_user/get_ck_help_msg.py b/StarRailUID/starrailuid_user/get_ck_help_msg.py index 2361a04..6794d12 100644 --- a/StarRailUID/starrailuid_user/get_ck_help_msg.py +++ b/StarRailUID/starrailuid_user/get_ck_help_msg.py @@ -2,11 +2,11 @@ from typing import List from gsuid_core.models import Message -CK_QRCODE_LOGIN = '''先发送【绑定uidxxx】绑定UID, +CK_QRCODE_LOGIN = """先发送【绑定uidxxx】绑定UID, 然后发送【扫码登陆】, 使用米游社APP扫码完成绑定, [或者]选择以下方法 -''' +""" -CK_CONSOLE = '''var cookie = document.cookie; +CK_CONSOLE = """var cookie = document.cookie; var Str_Num = cookie.indexOf('_MHYUUID='); cookie = '添加 ' + cookie.substring(Str_Num); var ask = confirm('Cookie:' + cookie + '\\n\\n按确认,然后粘贴发送给机器人'); @@ -16,21 +16,21 @@ if (ask == true) { } else { msg = 'Cancel' } -''' +""" -CK_URL = '''1.复制上面全部代码,然后打开下面的网站 +CK_URL = """1.复制上面全部代码,然后打开下面的网站 https://bbs.mihoyo.com/ys/obc/?bbs_presentation_style=no_header(国服) https://www.hoyolab.com/home(国际服) 2.在页面上右键检查或者Ctrl+Shift+i 3.选择控制台(Console),粘贴,回车,在弹出的窗口点确认(点完自动复制) 4.然后在和机器人的私聊窗口,粘贴发送即可 -''' +""" -SK_URL = '''如果想获取SK,操作方法和上面一致,网址更换为 +SK_URL = """如果想获取SK,操作方法和上面一致,网址更换为 http://user.mihoyo.com/(国服) 登陆后,进入控制台粘贴代码 然后在和机器人的私聊窗口,粘贴发送即可 -''' +""" async def get_ck_help() -> List[Message]: diff --git a/StarRailUID/starrailuid_user/qrlogin.py b/StarRailUID/starrailuid_user/qrlogin.py index de66874..8f799b0 100644 --- a/StarRailUID/starrailuid_user/qrlogin.py +++ b/StarRailUID/starrailuid_user/qrlogin.py @@ -15,12 +15,12 @@ from gsuid_core.segment import MessageSegment from ..utils.api import get_sqla from ..utils.mys_api import mys_api -disnote = '''免责声明:您将通过扫码完成获取米游社sk以及ck。 +disnote = """免责声明:您将通过扫码完成获取米游社sk以及ck。 本Bot将不会保存您的登录状态。 我方仅提供米游社查询及相关游戏内容服务 若您的账号封禁、被盗等处罚与我方无关。 害怕风险请勿扫码! -''' +""" def get_qrcode_base64(url): diff --git a/StarRailUID/utils/error_reply.py b/StarRailUID/utils/error_reply.py index b39a5a0..2461cb2 100644 --- a/StarRailUID/utils/error_reply.py +++ b/StarRailUID/utils/error_reply.py @@ -2,19 +2,19 @@ from typing import Union UID_HINT = '你还没有绑定过uid哦!\n请使用[sr绑定uid123456]命令绑定!' MYS_HINT = '你还没有绑定过mysid哦!\n请使用[绑定mys1234]命令绑定!' -CK_HINT = '''你还没有绑定过Cookie哦!发送【ck帮助】获取帮助! -警告:绑定Cookie可能会带来未知的账号风险,请确保信任机器人管理员''' +CK_HINT = """你还没有绑定过Cookie哦!发送【ck帮助】获取帮助! +警告:绑定Cookie可能会带来未知的账号风险,请确保信任机器人管理员""" CHAR_HINT = '您的支援/星海同行角色没有{}的数据哦!\n请先把{}放入支援/星海同行中再使用【sr强制刷新】命令来缓存数据进行查询! !' -VERIFY_HINT = '''出现验证码! +VERIFY_HINT = """出现验证码! 如已绑定CK: 请至米游社软件->我的->我的角色处解锁验证码 (可使用[gs关闭推送]命令关闭体力推送以减少出现验证码风险) 如未绑定CK: 可联系管理员使用[gs清除缓存]命令 -''' +""" SK_HINT = '你还没有绑定过Stoken或者Stoken已失效~\n请群聊发送 [扫码登陆] 或加好友私聊Bot [添加]后跟SK格式 以绑定SK' -UPDATE_HINT = '''更新失败!更多错误信息请查看控制台... +UPDATE_HINT = """更新失败!更多错误信息请查看控制台... >> 可以尝试使用 >> [gs强制更新](危险) ->> [gs强行强制更新](超级危险)!''' +>> [gs强行强制更新](超级危险)!""" def get_error(retcode: Union[int, str]) -> str: diff --git a/StarRailUID/utils/resource/download_from_cos.py b/StarRailUID/utils/resource/download_from_cos.py index 10a1064..0ba86ec 100644 --- a/StarRailUID/utils/resource/download_from_cos.py +++ b/StarRailUID/utils/resource/download_from_cos.py @@ -2,33 +2,33 @@ import asyncio from pathlib import Path from typing import Dict, List, Tuple, Union -from bs4 import BeautifulSoup -from msgspec import json as msgjson -from gsuid_core.logger import logger +from aiohttp import ClientTimeout, TCPConnector from aiohttp.client import ClientSession -from aiohttp import TCPConnector, ClientTimeout +from bs4 import BeautifulSoup +from gsuid_core.logger import logger +from gsuid_core.utils.download_resource.download_core import find_fastest_url from gsuid_core.utils.download_resource.download_file import download -from gsuid_core.utils.download_resource.download_core import check_url +from msgspec import json as msgjson from .download_url import download_file from .RESOURCE_PATH import ( - WIKI_PATH, + CHAR_ICON_PATH, + CHAR_PORTRAIT_PATH, + CHAR_PREVIEW_PATH, + CONSUMABLE_PATH, + ELEMENT_PATH, + GUIDE_CHARACTER_PATH, + GUIDE_LIGHT_CONE_PATH, GUIDE_PATH, RELIC_PATH, + RESOURCE_PATH, SKILL_PATH, WEAPON_PATH, - ELEMENT_PATH, - RESOURCE_PATH, - CHAR_ICON_PATH, - WIKI_ROLE_PATH, - CONSUMABLE_PATH, - WIKI_RELIC_PATH, - CHAR_PREVIEW_PATH, - CHAR_PORTRAIT_PATH, - GUIDE_CHARACTER_PATH, WIKI_LIGHT_CONE_PATH, - GUIDE_LIGHT_CONE_PATH, WIKI_MATERIAL_FOR_ROLE, + WIKI_PATH, + WIKI_RELIC_PATH, + WIKI_ROLE_PATH, ) with Path.open( @@ -40,30 +40,6 @@ with Path.open( ) -async def find_fastest_url(urls: Dict[str, str]): - tasks = [] - for tag in urls: - tasks.append(asyncio.create_task(check_url(tag, urls[tag]))) - - results: list[ - tuple[str, str, float] | BaseException - ] = await asyncio.gather(*tasks, return_exceptions=True) - fastest_tag = '' - fastest_url = '' - fastest_time = float('inf') - - for result in results: - if isinstance(result, BaseException): - continue - tag, url, elapsed_time = result - if elapsed_time < fastest_time: - fastest_url = url - fastest_time = elapsed_time - fastest_tag = tag - - return fastest_tag, fastest_url - - async def check_speed(): logger.info('[GsCore资源下载]测速中...') @@ -171,7 +147,9 @@ async def download_all_file_from_cos(): or not Path.stat(path).st_size or not is_diff ): - logger.info(f'[cos]开始下载[{resource_type}]_[{name}]...') + logger.info( + f'[cos]开始下载[{resource_type}]_[{name}]...' + ) temp_num += 1 if isinstance(url, int): logger.error( @@ -209,7 +187,9 @@ async def download_all_file_from_cos(): await _download(TASKS) await _download(TASKS) if count := len(failed_list): - logger.error(f'[cos]仍有{count}个文件未下载,请使用命令 `下载全部资源` 重新下载') + logger.error( + f'[cos]仍有{count}个文件未下载,请使用命令 `下载全部资源` 重新下载' + ) async def _get_url(url: str, sess: ClientSession): @@ -236,7 +216,9 @@ async def download_all_file( pre_data = content_bs.find_all('pre')[0] data_list = pre_data.find_all('a') size_list = list(content_bs.strings) - logger.info(f'{TAG} 数据库 {endpoint} 中存在 {len(data_list)} 个内容!') + logger.info( + f'{TAG} 数据库 {endpoint} 中存在 {len(data_list)} 个内容!' + ) temp_num = 0 for index, data in enumerate(data_list): diff --git a/pyproject.toml b/pyproject.toml index ef1731d..abad42a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,11 +1,3 @@ -[tool.black] -line-length = 79 -target-version = ["py38", "py39", "py310", "py311"] -include = '\.pyi?$' -skip-string-normalization = true -extend-exclude = ''' -''' - [tool.isort] profile = "black" line_length = 79 @@ -40,7 +32,6 @@ secondary = true [tool.poetry.group.dev.dependencies] flake8 = "^6.0.0" -black = "^23.1.0" isort = "^5.12.0" pre-commit = "^2.21.0" pycln = "^2.1.2" @@ -80,6 +71,7 @@ select = [ "Q", # flake8-quotes ] ignore = [ + "ISC", "PLR2004", "A003", "E501", @@ -101,4 +93,6 @@ target-version = "py38" [tool.ruff.flake8-quotes] inline-quotes = "single" -multiline-quotes = "single" + +[tool.ruff.format] +quote-style = "single"