From 5f377af6d502cab6a47b3e66087f9fd63ea733ac Mon Sep 17 00:00:00 2001 From: Dolen <87627379+HiDolen@users.noreply.github.com> Date: Tue, 24 May 2022 09:13:10 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=8A=BD=E5=8D=A1=E6=8F=92?= =?UTF-8?q?=E4=BB=B6=EF=BC=9A=E6=96=B9=E8=88=9F=E6=8A=BD=E5=8D=A1=E7=9A=84?= =?UTF-8?q?=E6=8A=BD=E5=8F=96=E5=92=8C=E6=98=BE=E7=A4=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/draw_card/handles/prts_handle.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/plugins/draw_card/handles/prts_handle.py b/plugins/draw_card/handles/prts_handle.py index 728b0a57..e51d0722 100644 --- a/plugins/draw_card/handles/prts_handle.py +++ b/plugins/draw_card/handles/prts_handle.py @@ -53,7 +53,7 @@ class PrtsHandle(BaseHandle[Operator]): all_operators = [ x for x in self.ALL_OPERATOR - if x.star == star and not any([x.limited, x.event_only, x.recruit_only]) + if x.star == star and not any([x.limited, x.recruit_only, x.event_only]) ] acquire_operator = None @@ -106,10 +106,13 @@ class PrtsHandle(BaseHandle[Operator]): async def draw(self, count: int, **kwargs) -> Message: return await asyncio.get_event_loop().run_in_executor(None, self._draw, count) + + def _draw(self, count: int, **kwargs) -> Message: index2card = self.get_cards(count) - cards = [card[0] for card in self.get_cards(count)] + """这里cards修复了抽卡图文不符的bug""" + cards = [card[0] for card in index2card] up_list = [x.name for x in self.UP_EVENT.up_char] if self.UP_EVENT else [] result = self.format_result(index2card, up_list=up_list) pool_info = self.format_pool_info() @@ -185,14 +188,15 @@ class PrtsHandle(BaseHandle[Operator]): avatar = char.xpath("./td[1]/div/div/div/a/img/@srcset")[0] name = char.xpath("./td[2]/a/text()")[0] star = char.xpath("./td[5]/text()")[0] - sources = str(char.xpath("./td[8]/text()")[0]).split("\n") + """这里sources修好了干员获取标签有问题的bug,如三星只能抽到卡缇就是这个原因""" + sources = [_.strip('\n') for _ in char.xpath("./td[8]/text()")] except IndexError: continue member_dict = { "头像": unquote(str(avatar).split(" ")[-2]), "名称": remove_prohibited_str(str(name).strip()), "星级": int(str(star).strip()), - "获取途径": [s for s in sources if s], + "获取途径": sources, } info[member_dict["名称"]] = member_dict self.dump_data(info) @@ -245,6 +249,10 @@ class PrtsHandle(BaseHandle[Operator]): if match: time = match.group(1) if "★" in line: + """这里修复了某些池子六星名称显示错误的问题(如奔崖号角)""" + if line[0] != '★': + idx = line.find('★') + line = line[idx:] chars.append(line) if not time: continue