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