fix 仿真签到判断是否已签

This commit is contained in:
thsrite
2023-09-14 15:17:30 +08:00
parent f7982e3e43
commit 32cb96fc44
2 changed files with 33 additions and 0 deletions

View File

@ -801,6 +801,10 @@ class AutoSignIn(_PluginBase):
return f"无法通过Cloudflare"
return f"仿真登录失败Cookie已失效"
else:
# 判断是否已签到
if re.search(r'已签|签到已得', page_source, re.IGNORECASE) \
or SiteUtils.is_checkin(page_source):
return f"签到成功"
return "仿真签到成功"
else:
res = RequestUtils(cookies=site_cookie,

View File

@ -31,3 +31,32 @@ class SiteUtils:
return True
return False
@classmethod
def is_checkin(cls, html_text: str) -> bool:
"""
判断站点是否已经签到
:return True已签到 False未签到
"""
html = etree.HTML(html_text)
if not html:
return False
# 站点签到支持的识别XPATH
xpaths = [
'//a[@id="signed"]',
'//a[contains(@href, "attendance")]',
'//a[contains(text(), "签到")]',
'//a/b[contains(text(), "签 到")]',
'//span[@id="sign_in"]/a',
'//a[contains(@href, "addbonus")]',
'//input[@class="dt_button"][contains(@value, "打卡")]',
'//a[contains(@href, "sign_in")]',
'//a[contains(@onclick, "do_signin")]',
'//a[@id="do-attendance"]',
'//shark-icon-button[@href="attendance.php"]'
]
for xpath in xpaths:
if html.xpath(xpath):
return False
return True