修复抽卡插件:方舟抽卡的抽取和显示问题

This commit is contained in:
Dolen 2022-05-24 09:13:10 +08:00
parent 41836bde26
commit 5f377af6d5

View File

@ -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