From 047a8056cee067742381b0cc066bd1b7418f0722 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wuyi=E6=97=A0=E7=96=91?= <444835641@qq.com> Date: Wed, 19 Jul 2023 03:39:12 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20=E6=94=AF=E6=8C=81`=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E6=B7=B1=E6=B8=8A4.011`=E6=A0=BC=E5=BC=8F=E6=9F=A5?= =?UTF-8?q?=E8=AF=A24.0=E7=89=88=E6=9C=AC=E6=B7=B1=E6=B8=8A11=E5=B1=82=20(?= =?UTF-8?q?#504)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GenshinUID/genshinuid_guide/__init__.py | 14 +++- .../genshinuid_guide/get_new_abyss_data.py | 20 +++-- GenshinUID/utils/api/cv/request.py | 9 ++- GenshinUID/utils/map/data/ExtraMonster.json | 77 +++++++++++++++++++ 4 files changed, 109 insertions(+), 11 deletions(-) diff --git a/GenshinUID/genshinuid_guide/__init__.py b/GenshinUID/genshinuid_guide/__init__.py index ad6d97f2..cfcff039 100644 --- a/GenshinUID/genshinuid_guide/__init__.py +++ b/GenshinUID/genshinuid_guide/__init__.py @@ -1,3 +1,4 @@ +import re from typing import List from gsuid_core.sv import SV @@ -46,13 +47,22 @@ async def send_bluekun_pic(bot: Bot, ev: Event): @sv_abyss_review.on_command(('版本深渊', '深渊阵容')) async def send_abyss_review(bot: Bot, ev: Event): + floor = '12' if not ev.text: version = Genshin_version[:-2] else: - version = ev.text + if '.' in ev.text: + num = ev.text.index('.') + version = ev.text[num - 1 : num + 2] # noqa:E203 + _deal = ev.text.replace(version, '').strip() + if _deal: + floor = re.findall(r'[0-9]+', _deal)[0] + else: + floor = ev.text + version = Genshin_version[:-2] if gsconfig.get_config('PicWiki').data: - im = await get_review_data(version) + im = await get_review_data(version, floor) else: im = await get_review(version) diff --git a/GenshinUID/genshinuid_guide/get_new_abyss_data.py b/GenshinUID/genshinuid_guide/get_new_abyss_data.py index f52751f6..27f3caa0 100644 --- a/GenshinUID/genshinuid_guide/get_new_abyss_data.py +++ b/GenshinUID/genshinuid_guide/get_new_abyss_data.py @@ -40,12 +40,10 @@ async def download_Oceanid(): async def get_half_img(data: List, half: Literal['Upper', 'Lower']): half_img = Image.new('RGBA', (1100, 3000), (0, 0, 0, 0)) + half_draw = ImageDraw.Draw(half_img) upper_h = 60 temp = 0 for index, wave in enumerate(data): - if 'ExtraDesc' in wave: - pass - # ExtraDesc = wave['ExtraDesc']['CH'] monsters = wave['Monsters'] wave_monster_uh = (((len(monsters) - 1) // 3) + 1) * 125 + 40 upper_h += wave_monster_uh @@ -55,6 +53,14 @@ async def get_half_img(data: List, half: Literal['Upper', 'Lower']): wave_tag_draw.text( (36, 20), f'第{index+1}波', (210, 210, 210), gs_font_24, 'lm' ) + if 'ExtraDesc' in wave: + ExtraDesc: str = wave['ExtraDesc']['CH'] + ExtraDesc = ' > ' + ExtraDesc.replace('', '').replace( + '', '' + ) + half_draw.text( + (150, 65 + temp), ExtraDesc, (210, 210, 210), gs_font_24, 'lm' + ) half_img.paste(wave_tag, (53, 45 + temp), wave_tag) for m_index, monster in enumerate(monsters): monster_id = monster['ID'] @@ -71,6 +77,10 @@ async def get_half_img(data: List, half: Literal['Upper', 'Lower']): monster_name = monster_data[real_id]['name'] icon_name = monster_data[real_id]['icon'] + if 'Mark' in monster: + if monster['Mark']: + monster_name = '*' + monster_name + monster_icon = await get_ambr_icon( 'monster', icon_name, MONSTER_ICON_PATH ) @@ -81,7 +91,7 @@ async def get_half_img(data: List, half: Literal['Upper', 'Lower']): monster_draw = ImageDraw.Draw(monster_img) monster_draw.text( - (137, 52), monster_name[:8], 'white', gs_font_24, 'lm' + (137, 52), monster_name[:10], 'white', gs_font_24, 'lm' ) monster_draw.text( (137, 82), @@ -114,7 +124,7 @@ async def get_review_data( ): floor_data = history_data[version][floor] data = abyss_data[floor_data] - floor_buff = data['Disorder']['CH'] + floor_buff = data['Disorder']['CH'].replace('', '').replace('', '') floor_monster = data['Chambers'] icon = Image.open(TEXT2D_PATH / 'icon.png') diff --git a/GenshinUID/utils/api/cv/request.py b/GenshinUID/utils/api/cv/request.py index a94957e5..ebd23710 100644 --- a/GenshinUID/utils/api/cv/request.py +++ b/GenshinUID/utils/api/cv/request.py @@ -20,10 +20,11 @@ class _CvApi: async with self.session.get(MAIN_API) as resp: cookies = resp.cookies cookies_dict = dict(cookies) - sid = cookies_dict.get( - "connect.sid", - {"connect.sid": "NVybrjSdSZISA0JRuKFoZIndoCfDWdA2"}, - ).get("connect.sid", "NVybrjSdSZISA0JRuKFoZIndoCfDWdA2") + sid = cookies_dict.get('connect.sid', None) + if sid is not None: + sid = sid.value + else: + sid = 'NVybrjSdSZISA0JRuKFoZIndoCfDWdA2' sid = unquote(str(sid)) sessionID = sid.split(".")[0].split(":")[-1] return sessionID diff --git a/GenshinUID/utils/map/data/ExtraMonster.json b/GenshinUID/utils/map/data/ExtraMonster.json index e738492c..f6c93335 100644 --- a/GenshinUID/utils/map/data/ExtraMonster.json +++ b/GenshinUID/utils/map/data/ExtraMonster.json @@ -188,6 +188,13 @@ "icon": "UI_MonsterIcon_MachinaIustitia_Ruggiero_02", "route": "Suppression Specialist Mek" }, + "24060901": { + "id": 24060901, + "name": "压制特化型机关·荒", + "type": "BEAST", + "icon": "UI_MonsterIcon_MachinaIustitia_Ruggiero_02", + "route": "Suppression Specialist Mek" + }, "24066201": { "id": 24066201, "name": "建造特化型机关·芒", @@ -209,6 +216,76 @@ "icon": "UI_MonsterIcon_MachinaIustitia_Bradamante", "route": "Suppression Specialist Mek" }, + "24066001": { + "id": 24066001, + "name": "歼灭特化型机关·芒", + "type": "BEAST", + "icon": "UI_MonsterIcon_MachinaIustitia_Bradamante", + "route": "Suppression Specialist Mek" + }, + "24060801": { + "id": 24060801, + "name": "攻坚特化型机关·荒", + "type": "BEAST", + "icon": "UI_MonsterIcon_MachinaIustitia_Ruggiero_01", + "route": "Suppression Specialist Mek" + }, + "24065801": { + "id": 24065801, + "name": "攻坚特化型机关·芒", + "type": "BEAST", + "icon": "UI_MonsterIcon_MachinaIustitia_Ruggiero_01", + "route": "Suppression Specialist Mek" + }, + "24060101": { + "id": 24060101, + "name": "机关·侦察记录型·荒", + "type": "BEAST", + "icon": "UI_MonsterIcon_MachinaIustitia_Sentry", + "route": "Suppression Specialist Mek" + }, + "24065101": { + "id": 24065101, + "name": "机关·侦察记录型·芒", + "type": "BEAST", + "icon": "UI_MonsterIcon_MachinaIustitia_Sentry", + "route": "Suppression Specialist Mek" + }, + "24060701": { + "id": 24060701, + "name": "机关·灵活采集型·荒", + "type": "BEAST", + "icon": "UI_MonsterIcon_MachinaIustitia_Assimilator", + "route": "Suppression Specialist Mek" + }, + "24065701": { + "id": 24065701, + "name": "机关·灵活采集型·芒", + "type": "BEAST", + "icon": "UI_MonsterIcon_MachinaIustitia_Assimilator", + "route": "Suppression Specialist Mek" + }, + "24060201": { + "id": 24060201, + "name": "机关·算力增幅器·荒", + "type": "BEAST", + "icon": "UI_MonsterIcon_MachinaIustitia_Pylon", + "route": "Suppression Specialist Mek" + }, + "24065201": { + "id": 24065201, + "name": "机关·算力增幅器·芒", + "type": "BEAST", + "icon": "UI_MonsterIcon_MachinaIustitia_Pylon", + "route": "Suppression Specialist Mek" + }, + "24065401": { + "id": 24065401, + "name": "机关地质勘探型·芒", + "type": "BEAST", + "icon": "UI_MonsterIcon_MachinaIustitia_Probe", + "route": "Suppression Specialist Mek" + }, "26170101": { "id": 26170101, "name": "铁甲熔火帝皇",