feat 签到结果保存

This commit is contained in:
jxxghp
2023-07-20 08:34:24 +08:00
parent 2d628361cf
commit 87e50b72da
18 changed files with 236 additions and 227 deletions
+14 -14
View File
@@ -55,24 +55,24 @@ class Pt52(_ISiteSigninHandler):
render=render)
if not html_text:
logger.error(f"签到失败,请检查站点连通性")
return False, f'{site}签到失败,请检查站点连通性'
logger.error(f"{site} 签到失败,请检查站点连通性")
return False, '签到失败,请检查站点连通性'
if "login.php" in html_text:
logger.error(f"签到失败,Cookie失效")
return False, f'{site}签到失败,Cookie失效'
logger.error(f"{site} 签到失败,Cookie失效")
return False, '签到失败,Cookie失效'
sign_status = self.sign_in_result(html_res=html_text,
regexs=self._sign_regex)
if sign_status:
logger.info(f"今日已签到")
return True, f'{site}今日已签到'
return True, '今日已签到'
# 没有签到则解析html
html = etree.HTML(html_text)
if not html:
return False, f'{site}签到失败'
return False, '签到失败'
# 获取页面问题、答案
questionid = html.xpath("//input[@name='questionid']/@value")[0]
@@ -127,21 +127,21 @@ class Pt52(_ISiteSigninHandler):
proxies=settings.PROXY if proxy else None
).post_res(url='https://52pt.site/bakatest.php', data=data)
if not sign_res or sign_res.status_code != 200:
logger.error(f"签到失败,签到接口请求失败")
return False, f'{site}签到失败,签到接口请求失败'
logger.error(f"{site} 签到失败,签到接口请求失败")
return False, '签到失败,签到接口请求失败'
# 判断是否签到成功
sign_status = self.sign_in_result(html_res=sign_res.text,
regexs=self._success_regex)
if sign_status:
logger.info(f"{site}签到成功")
return True, f'{site}签到成功'
logger.info(f"{site} 签到成功")
return True, '签到成功'
else:
sign_status = self.sign_in_result(html_res=sign_res.text,
regexs=self._sign_regex)
if sign_status:
logger.info(f"今日已签到")
return True, f'{site}今日已签到'
logger.info(f"{site} 今日已签到")
return True, '今日已签到'
logger.error(f"签到失败,请到页面查看")
return False, f'{site}签到失败,请到页面查看'
logger.error(f"{site} 签到失败,请到页面查看")
return False, '签到失败,请到页面查看'
+10 -10
View File
@@ -47,17 +47,17 @@ class BTSchool(_ISiteSigninHandler):
render=render)
if not html_text:
logger.error(f"签到失败,请检查站点连通性")
return False, f'{site}签到失败,请检查站点连通性'
logger.error(f"{site} 签到失败,请检查站点连通性")
return False, '签到失败,请检查站点连通性'
if "login.php" in html_text:
logger.error(f"签到失败,Cookie失效")
return False, f'{site}签到失败,Cookie失效'
logger.error(f"{site} 签到失败,Cookie失效")
return False, '签到失败,Cookie失效'
# 已签到
if self._sign_text not in html_text:
logger.info(f"今日已签到")
return True, f'{site}今日已签到'
logger.info(f"{site} 今日已签到")
return True, '今日已签到'
html_text = self.get_page_source(url='https://pt.btschool.club/index.php?action=addbonus',
cookie=site_cookie,
@@ -66,10 +66,10 @@ class BTSchool(_ISiteSigninHandler):
render=render)
if not html_text:
logger.error(f"签到失败,签到接口请求失败")
return False, f'{site}签到失败,签到接口请求失败'
logger.error(f"{site} 签到失败,签到接口请求失败")
return False, '签到失败,签到接口请求失败'
# 签到成功
if self._sign_text not in html_text:
logger.info(f"签到成功")
return True, f'{site}签到成功'
logger.info(f"{site} 签到成功")
return True, '签到成功'
+14 -14
View File
@@ -56,24 +56,24 @@ class CHDBits(_ISiteSigninHandler):
render=render)
if not html_text:
logger.error(f"签到失败,请检查站点连通性")
return False, f'{site}签到失败,请检查站点连通性'
logger.error(f"{site} 签到失败,请检查站点连通性")
return False, '签到失败,请检查站点连通性'
if "login.php" in html_text:
logger.error(f"签到失败,Cookie失效")
return False, f'{site}签到失败,Cookie失效'
logger.error(f"{site} 签到失败,Cookie失效")
return False, '签到失败,Cookie失效'
sign_status = self.sign_in_result(html_res=html_text,
regexs=self._sign_regex)
if sign_status:
logger.info(f"今日已签到")
return True, f'{site}今日已签到'
logger.info(f"{site} 今日已签到")
return True, '今日已签到'
# 没有签到则解析html
html = etree.HTML(html_text)
if not html:
return False, f'{site}签到失败'
return False, '签到失败'
# 获取页面问题、答案
questionid = html.xpath("//input[@name='questionid']/@value")[0]
@@ -128,21 +128,21 @@ class CHDBits(_ISiteSigninHandler):
proxies=settings.PROXY if proxy else None
).post_res(url='https://chdbits.co/bakatest.php', data=data)
if not sign_res or sign_res.status_code != 200:
logger.error(f"签到失败,签到接口请求失败")
return False, f'{site}签到失败,签到接口请求失败'
logger.error(f"{site} 签到失败,签到接口请求失败")
return False, '签到失败,签到接口请求失败'
# 判断是否签到成功
sign_status = self.sign_in_result(html_res=sign_res.text,
regexs=self._success_regex)
if sign_status:
logger.info(f"{site} 签到成功")
return True, f'{site}签到成功'
return True, '签到成功'
else:
sign_status = self.sign_in_result(html_res=sign_res.text,
regexs=self._sign_regex)
if sign_status:
logger.info(f"今日已签到")
return True, f'{site}今日已签到'
logger.info(f"{site} 今日已签到")
return True, '今日已签到'
logger.error(f"签到失败,请到页面查看")
return False, f'{site}签到失败,请到页面查看'
logger.error(f"{site} 签到失败,请到页面查看")
return False, '签到失败,请到页面查看'
+8 -8
View File
@@ -45,18 +45,18 @@ class HaiDan(_ISiteSigninHandler):
proxy=proxy,
render=render)
if not html_text:
logger.error(f"签到失败,请检查站点连通性")
return False, f'{site}签到失败,请检查站点连通性'
logger.error(f"{site} 签到失败,请检查站点连通性")
return False, '签到失败,请检查站点连通性'
if "login.php" in html_text:
logger.error(f"签到失败,Cookie失效")
return False, f'{site}签到失败,Cookie失效'
logger.error(f"{site} 签到失败,Cookie失效")
return False, '签到失败,Cookie失效'
sign_status = self.sign_in_result(html_res=html_text,
regexs=self._succeed_regex)
if sign_status:
logger.info(f"签到成功")
return True, f'{site}签到成功'
logger.info(f"{site} 签到成功")
return True, '签到成功'
logger.error(f"签到失败,签到接口返回 {html_text}")
return False, f'{site}签到失败'
logger.error(f"{site} 签到失败,签到接口返回 {html_text}")
return False, '签到失败'
+11 -11
View File
@@ -49,16 +49,16 @@ class Hares(_ISiteSigninHandler):
render=render)
if not html_text:
logger.error(f"模拟访问失败,请检查站点连通性")
return False, f'{site}模拟访问失败,请检查站点连通性'
logger.error(f"{site} 模拟访问失败,请检查站点连通性")
return False, '模拟访问失败,请检查站点连通性'
if "login.php" in html_text:
logger.error(f"模拟访问失败,Cookie失效")
return False, f'{site}模拟访问失败,Cookie失效'
logger.error(f"{site} 模拟访问失败,Cookie失效")
return False, '模拟访问失败,Cookie失效'
# if self._sign_text in html_res.text:
# logger.info(f"今日已签到")
# return True, f'【{site}】今日已签到'
# return True, '今日已签到'
headers = {
'Accept': 'application/json',
@@ -69,15 +69,15 @@ class Hares(_ISiteSigninHandler):
proxies=settings.PROXY if proxy else None
).get_res(url="https://club.hares.top/attendance.php?action=sign")
if not sign_res or sign_res.status_code != 200:
logger.error(f"签到失败,签到接口请求失败")
return False, f'{site}签到失败,签到接口请求失败'
logger.error(f"{site} 签到失败,签到接口请求失败")
return False, '签到失败,签到接口请求失败'
# {"code":1,"msg":"您今天已经签到过了"}
# {"code":0,"msg":"签到成功"}
sign_dict = json.loads(sign_res.text)
if sign_dict['code'] == 0:
logger.info(f"签到成功")
return True, f'{site}签到成功'
logger.info(f"{site} 签到成功")
return True, '签到成功'
else:
logger.info(f"今日已签到")
return True, f'{site}今日已签到'
logger.info(f"{site} 今日已签到")
return True, '今日已签到'
+12 -12
View File
@@ -47,17 +47,17 @@ class HDArea(_ISiteSigninHandler):
proxies=proxies
).get_res(url="https://pt.hd4fans.org/index.php")
if not html_res or html_res.status_code != 200:
logger.error(f"签到失败,请检查站点连通性")
return False, f'{site}签到失败,请检查站点连通性'
logger.error(f"{site} 签到失败,请检查站点连通性")
return False, '签到失败,请检查站点连通性'
if "login.php" in html_res.text:
logger.error(f"签到失败,cookie失效")
return False, f'{site}签到失败,cookie失效'
logger.error(f"{site} 签到失败,cookie失效")
return False, '签到失败,cookie失效'
# 判断是否已签到
if self._repeat_text in html_res.text:
logger.info(f"今日已签到")
return True, f'{site}今日已签到'
logger.info(f"{site} 今日已签到")
return True, '今日已签到'
# 签到
data = {
@@ -68,12 +68,12 @@ class HDArea(_ISiteSigninHandler):
proxies=proxies
).post_res(url="https://pt.hd4fans.org/checkin.php", data=data)
if not sign_res or sign_res.status_code != 200:
logger.error(f"签到失败,请检查站点连通性")
return False, f'{site}签到失败,请检查站点连通性'
logger.error(f"{site} 签到失败,请检查站点连通性")
return False, '签到失败,请检查站点连通性'
# sign_res.text=本次签到魔力
if sign_res.text and int(sign_res.text) > 0:
logger.info(f"签到成功")
return True, f'{site}签到成功'
logger.info(f"{site} 签到成功")
return True, '签到成功'
logger.error(f"签到失败,签到接口返回 {sign_res.text}")
return False, f'{site}签到失败'
logger.error(f"{site} 签到失败,签到接口返回 {sign_res.text}")
return False, '签到失败'
+10 -10
View File
@@ -50,20 +50,20 @@ class HDArea(_ISiteSigninHandler):
proxies=proxies
).post_res(url="https://www.hdarea.co/sign_in.php", data=data)
if not html_res or html_res.status_code != 200:
logger.error(f"签到失败,请检查站点连通性")
return False, f'{site}签到失败,请检查站点连通性'
logger.error(f"{site} 签到失败,请检查站点连通性")
return False, '签到失败,请检查站点连通性'
if "login.php" in html_res.text:
logger.error(f"签到失败,Cookie失效")
return False, f'{site}签到失败,Cookie失效'
logger.error(f"{site} 签到失败,Cookie失效")
return False, '签到失败,Cookie失效'
# 判断是否已签到
# '已连续签到278天,此次签到您获得了100魔力值奖励!'
if self._success_text in html_res.text:
logger.info(f"签到成功")
return True, f'{site}签到成功'
logger.info(f"{site} 签到成功")
return True, '签到成功'
if self._repeat_text in html_res.text:
logger.info(f"今日已签到")
return True, f'{site}今日已签到'
logger.error(f"签到失败,签到接口返回 {html_res.text}")
return False, f'{site}签到失败'
logger.info(f"{site} 今日已签到")
return True, '今日已签到'
logger.error(f"{site} 签到失败,签到接口返回 {html_res.text}")
return False, '签到失败'
+17 -17
View File
@@ -52,8 +52,8 @@ class HDChina(_ISiteSigninHandler):
cookie += sub_str + ";"
if "hdchina=" not in cookie:
logger.error(f"签到失败,Cookie失效")
return False, f'{site}签到失败,Cookie失效'
logger.error(f"{site} 签到失败,Cookie失效")
return False, '签到失败,Cookie失效'
site_cookie = cookie
# 获取页面html
@@ -62,12 +62,12 @@ class HDChina(_ISiteSigninHandler):
proxies=proxies
).get_res(url="https://hdchina.org/index.php")
if not html_res or html_res.status_code != 200:
logger.error(f"签到失败,请检查站点连通性")
return False, f'{site}签到失败,请检查站点连通性'
logger.error(f"{site} 签到失败,请检查站点连通性")
return False, '签到失败,请检查站点连通性'
if "login.php" in html_res.text or "阻断页面" in html_res.text:
logger.error(f"签到失败,Cookie失效")
return False, f'{site}签到失败,Cookie失效'
logger.error(f"{site} 签到失败,Cookie失效")
return False, '签到失败,Cookie失效'
# 获取新返回的cookie进行签到
site_cookie = ';'.join(['{}={}'.format(k, v) for k, v in html_res.cookies.get_dict().items()])
@@ -77,20 +77,20 @@ class HDChina(_ISiteSigninHandler):
sign_status = self.sign_in_result(html_res=html_res.text,
regexs=self._sign_regex)
if sign_status:
logger.info(f"今日已签到")
return True, f'{site}今日已签到'
logger.info(f"{site} 今日已签到")
return True, '今日已签到'
# 没有签到则解析html
html = etree.HTML(html_res.text)
if not html:
return False, f'{site}签到失败'
return False, '签到失败'
# x_csrf
x_csrf = html.xpath("//meta[@name='x-csrf']/@content")[0]
if not x_csrf:
logger.error("签到失败,获取x-csrf失败")
return False, f'{site}签到失败'
logger.error("{site} 签到失败,获取x-csrf失败")
return False, '签到失败'
logger.debug(f"获取到x-csrf {x_csrf}")
# 签到
@@ -102,16 +102,16 @@ class HDChina(_ISiteSigninHandler):
proxies=proxies
).post_res(url="https://hdchina.org/plugin_sign-in.php?cmd=signin", data=data)
if not sign_res or sign_res.status_code != 200:
logger.error(f"签到失败,签到接口请求失败")
return False, f'{site}签到失败,签到接口请求失败'
logger.error(f"{site} 签到失败,签到接口请求失败")
return False, '签到失败,签到接口请求失败'
sign_dict = json.loads(sign_res.text)
logger.debug(f"签到返回结果 {sign_dict}")
if sign_dict['state']:
# {'state': 'success', 'signindays': 10, 'integral': 20}
logger.info(f"签到成功")
return True, f'{site}签到成功'
logger.info(f"{site} 签到成功")
return True, '签到成功'
else:
# {'state': False, 'msg': '不正确的CSRF / Incorrect CSRF token'}
logger.error(f"签到失败,不正确的CSRF / Incorrect CSRF token")
return False, f'{site}签到失败'
logger.error(f"{site} 签到失败,不正确的CSRF / Incorrect CSRF token")
return False, '签到失败'
+10 -10
View File
@@ -47,20 +47,20 @@ class HDCity(_ISiteSigninHandler):
proxy=proxy,
render=render)
if not html_text:
logger.error(f"签到失败,请检查站点连通性")
return False, f'{site}签到失败,请检查站点连通性'
logger.error(f"{site} 签到失败,请检查站点连通性")
return False, '签到失败,请检查站点连通性'
if "login" in html_text:
logger.error(f"签到失败,Cookie失效")
return False, f'{site}签到失败,Cookie失效'
logger.error(f"{site} 签到失败,Cookie失效")
return False, '签到失败,Cookie失效'
# 判断是否已签到
# '已连续签到278天,此次签到您获得了100魔力值奖励!'
if self._success_text in html_text:
logger.info(f"签到成功")
return True, f'{site}签到成功'
logger.info(f"{site} 签到成功")
return True, '签到成功'
if self._repeat_text in html_text:
logger.info(f"今日已签到")
return True, f'{site}今日已签到'
logger.error(f"签到失败,签到接口返回 {html_text}")
return False, f'{site}签到失败'
logger.info(f"{site} 今日已签到")
return True, '今日已签到'
logger.error(f"{site} 签到失败,签到接口返回 {html_text}")
return False, '签到失败'
+14 -14
View File
@@ -50,18 +50,18 @@ class HDSky(_ISiteSigninHandler):
proxy=proxy,
render=render)
if not html_text:
logger.error(f"签到失败,请检查站点连通性")
return False, f'{site}签到失败,请检查站点连通性'
logger.error(f"{site} 签到失败,请检查站点连通性")
return False, '签到失败,请检查站点连通性'
if "login.php" in html_text:
logger.error(f"签到失败,Cookie失效")
return False, f'{site}签到失败,Cookie失效'
logger.error(f"{site} 签到失败,Cookie失效")
return False, '签到失败,Cookie失效'
sign_status = self.sign_in_result(html_res=html_text,
regexs=self._sign_regex)
if sign_status:
logger.info(f"今日已签到")
return True, f'{site}今日已签到'
logger.info(f"{site} 今日已签到")
return True, '今日已签到'
# 获取验证码请求,考虑到网络问题获取失败,多获取几次试试
res_times = 0
@@ -118,16 +118,16 @@ class HDSky(_ISiteSigninHandler):
).post_res(url='https://hdsky.me/showup.php', data=data)
if res and res.status_code == 200:
if json.loads(res.text)["success"]:
logger.info(f"签到成功")
return True, f'{site}签到成功'
logger.info(f"{site} 签到成功")
return True, '签到成功'
elif str(json.loads(res.text)["message"]) == "date_unmatch":
# 重复签到
logger.warn(f"重复成功")
return True, f'{site}今日已签到'
logger.warn(f"{site} 重复成功")
return True, '今日已签到'
elif str(json.loads(res.text)["message"]) == "invalid_imagehash":
# 验证码错误
logger.warn(f"签到失败:验证码错误")
return False, f'{site}签到失败:验证码错误'
logger.warn(f"{site} 签到失败:验证码错误")
return False, '签到失败:验证码错误'
logger.error(f'签到失败:未获取到验证码')
return False, f'{site}签到失败:未获取到验证码'
logger.error(f'{site} 签到失败:未获取到验证码')
return False, '签到失败:未获取到验证码'
+13 -13
View File
@@ -49,18 +49,18 @@ class HDUpt(_ISiteSigninHandler):
proxy=proxy,
render=render)
if not html_text:
logger.error(f"签到失败,请检查站点连通性")
return False, f'{site}签到失败,请检查站点连通性'
logger.error(f"{site} 签到失败,请检查站点连通性")
return False, '签到失败,请检查站点连通性'
if "login.php" in html_text:
logger.error(f"签到失败,Cookie失效")
return False, f'{site}签到失败,Cookie失效'
logger.error(f"{site} 签到失败,Cookie失效")
return False, '签到失败,Cookie失效'
sign_status = self.sign_in_result(html_res=html_text,
regexs=self._sign_regex)
if sign_status:
logger.info(f"今日已签到")
return True, f'{site}今日已签到'
logger.info(f"{site} 今日已签到")
return True, '今日已签到'
# 签到
html_text = self.get_page_source(url='https://pt.hdupt.com/added.php?action=qiandao',
@@ -69,14 +69,14 @@ class HDUpt(_ISiteSigninHandler):
proxy=proxy,
render=render)
if not html_text:
logger.error(f"签到失败,请检查站点连通性")
return False, f'{site}签到失败,请检查站点连通性'
logger.error(f"{site} 签到失败,请检查站点连通性")
return False, '签到失败,请检查站点连通性'
logger.debug(f"签到接口返回 {html_text}")
logger.debug(f"{site} 签到接口返回 {html_text}")
# 判断是否已签到 sign_res.text = ".23"
if len(list(map(int, re.findall(r"\d+", html_text)))) > 0:
logger.info(f"签到成功")
return True, f'{site}签到成功'
logger.info(f"{site} 签到成功")
return True, '签到成功'
logger.error(f"签到失败,签到接口返回 {html_text}")
return False, f'{site}签到失败'
logger.error(f"{site} 签到失败,签到接口返回 {html_text}")
return False, '签到失败'
+18 -18
View File
@@ -51,16 +51,16 @@ class Opencd(_ISiteSigninHandler):
proxy=proxy,
render=render)
if not html_text:
logger.error(f"签到失败,请检查站点连通性")
return False, f'{site}签到失败,请检查站点连通性'
logger.error(f"{site} 签到失败,请检查站点连通性")
return False, '签到失败,请检查站点连通性'
if "login.php" in html_text:
logger.error(f"签到失败,Cookie失效")
return False, f'{site}签到失败,Cookie失效'
logger.error(f"{site} 签到失败,Cookie失效")
return False, '签到失败,Cookie失效'
if self._repeat_text in html_text:
logger.info(f"今日已签到")
return True, f'{site}今日已签到'
logger.info(f"{site} 今日已签到")
return True, '今日已签到'
# 获取签到参数
html_text = self.get_page_source(url='https://www.open.cd/plugin_sign-in.php',
@@ -69,24 +69,24 @@ class Opencd(_ISiteSigninHandler):
proxy=proxy,
render=render)
if not html_text:
logger.error(f"签到失败,请检查站点连通性")
return False, f'{site}签到失败,请检查站点连通性'
logger.error(f"{site} 签到失败,请检查站点连通性")
return False, '签到失败,请检查站点连通性'
# 没有签到则解析html
html = etree.HTML(html_text)
if not html:
return False, f'{site}签到失败'
return False, '签到失败'
# 签到参数
img_url = html.xpath('//form[@id="frmSignin"]//img/@src')[0]
img_hash = html.xpath('//form[@id="frmSignin"]//input[@name="imagehash"]/@value')[0]
if not img_url or not img_hash:
logger.error(f"签到失败,获取签到参数失败")
return False, f'{site}签到失败,获取签到参数失败'
logger.error(f"{site} 签到失败,获取签到参数失败")
return False, '签到失败,获取签到参数失败'
# 完整验证码url
img_get_url = 'https://www.open.cd/%s' % img_url
logger.debug(f"获取到{site}验证码链接 {img_get_url}")
logger.debug(f"{site} 获取到{site}验证码链接 {img_get_url}")
# ocr识别多次,获取6位验证码
times = 0
@@ -122,11 +122,11 @@ class Opencd(_ISiteSigninHandler):
# sign_res.text = '{"state":"success","signindays":"0","integral":"10"}'
sign_dict = json.loads(sign_res.text)
if sign_dict['state']:
logger.info(f"签到成功")
return True, f'{site}签到成功'
logger.info(f"{site} 签到成功")
return True, '签到成功'
else:
logger.error(f"签到失败,签到接口返回 {sign_dict}")
return False, f'{site}签到失败'
logger.error(f"{site} 签到失败,签到接口返回 {sign_dict}")
return False, '签到失败'
logger.error(f'签到失败:未获取到验证码')
return False, f'{site}签到失败:未获取到验证码'
logger.error(f'{site} 签到失败:未获取到验证码')
return False, '签到失败:未获取到验证码'
+6 -6
View File
@@ -43,16 +43,16 @@ class PTerClub(_ISiteSigninHandler):
proxy=proxy,
render=render)
if not html_text:
logger.error(f"签到失败,签到接口请求失败")
return False, f'{site}签到失败,请检查cookie是否失效'
logger.error(f"{site} 签到失败,签到接口请求失败")
return False, '签到失败,请检查cookie是否失效'
sign_dict = json.loads(html_text)
if sign_dict['status'] == '1':
# {"status":"1","data":" (签到已成功300)","message":"<p>这是您的第<b>237</b>次签到,
# 已连续签到<b>237</b>天。</p><p>本次签到获得<b>300</b>克猫粮。</p>"}
logger.info(f"签到成功")
return True, f'{site}签到成功'
logger.info(f"{site} 签到成功")
return True, '签到成功'
else:
# {"status":"0","data":"抱歉","message":"您今天已经签到过了,请勿重复刷新。"}
logger.info(f"今日已签到")
return True, f'{site}今日已签到'
logger.info(f"{site} 今日已签到")
return True, '今日已签到'
+19 -19
View File
@@ -71,28 +71,28 @@ class Tjupt(_ISiteSigninHandler):
# 获取签到后返回html,判断是否签到成功
if not html_text:
logger.error(f"签到失败,请检查站点连通性")
return False, f'{site}签到失败,请检查站点连通性'
logger.error(f"{site} 签到失败,请检查站点连通性")
return False, '签到失败,请检查站点连通性'
if "login.php" in html_text:
logger.error(f"签到失败,Cookie失效")
return False, f'{site}签到失败,Cookie失效'
logger.error(f"{site} 签到失败,Cookie失效")
return False, '签到失败,Cookie失效'
sign_status = self.sign_in_result(html_res=html_text,
regexs=self._sign_regex)
if sign_status:
logger.info(f"今日已签到")
return True, f'{site}今日已签到'
logger.info(f"{site} 今日已签到")
return True, '今日已签到'
# 没有签到则解析html
html = etree.HTML(html_text)
if not html:
return False, f'{site}签到失败'
return False, '签到失败'
img_url = html.xpath('//table[@class="captcha"]//img/@src')[0]
if not img_url:
logger.error(f"签到失败,未获取到签到图片")
return False, f'{site}签到失败,未获取到签到图片'
logger.error(f"{site} 签到失败,未获取到签到图片")
return False, '签到失败,未获取到签到图片'
# 签到图片
img_url = "https://www.tjupt.org" + img_url
@@ -103,8 +103,8 @@ class Tjupt(_ISiteSigninHandler):
proxies=settings.PROXY if proxy else None
).get_res(url=img_url)
if not captcha_img_res or captcha_img_res.status_code != 200:
logger.error(f"签到图片 {img_url} 请求失败")
return False, f'{site}签到失败,未获取到签到图片'
logger.error(f"{site} 签到图片 {img_url} 请求失败")
return False, '签到失败,未获取到签到图片'
captcha_img = Image.open(BytesIO(captcha_img_res.content))
captcha_img_hash = self._tohash(captcha_img)
logger.debug(f"签到图片hash {captcha_img_hash}")
@@ -114,8 +114,8 @@ class Tjupt(_ISiteSigninHandler):
options = html.xpath("//input[@name='answer']/following-sibling::text()")
if not values or not options:
logger.error(f"签到失败,未获取到答案选项")
return False, f'{site}签到失败,未获取到答案选项'
logger.error(f"{site} 签到失败,未获取到答案选项")
return False, '签到失败,未获取到答案选项'
# value+选项
answers = list(zip(values, options))
@@ -191,7 +191,7 @@ class Tjupt(_ISiteSigninHandler):
logger.error(f"豆瓣图片匹配,未获取到匹配答案")
# 没有匹配签到成功,则签到失败
return False, f'{site}签到失败,未获取到匹配答案'
return False, '签到失败,未获取到匹配答案'
def __signin(self, answer, site_cookie, ua, proxy, site, exits_answers=None, captcha_img_hash=None):
"""
@@ -207,8 +207,8 @@ class Tjupt(_ISiteSigninHandler):
proxies=settings.PROXY if proxy else None
).post_res(url=self._sign_in_url, data=data)
if not sign_in_res or sign_in_res.status_code != 200:
logger.error(f"签到失败,签到接口请求失败")
return False, f'{site}签到失败,签到接口请求失败'
logger.error(f"{site} 签到失败,签到接口请求失败")
return False, '签到失败,签到接口请求失败'
# 获取签到后返回html,判断是否签到成功
sign_status = self.sign_in_result(html_res=sign_in_res.text,
@@ -220,10 +220,10 @@ class Tjupt(_ISiteSigninHandler):
self.__write_local_answer(exits_answers=exits_answers or {},
captcha_img_hash=captcha_img_hash,
answer=answer)
return True, f'{site}签到成功'
return True, '签到成功'
else:
logger.error(f"签到失败,请到页面查看")
return False, f'{site}签到失败,请到页面查看'
logger.error(f"{site} 签到失败,请到页面查看")
return False, '签到失败,请到页面查看'
def __write_local_answer(self, exits_answers, captcha_img_hash, answer):
"""
+14 -14
View File
@@ -52,19 +52,19 @@ class TTG(_ISiteSigninHandler):
proxy=proxy,
render=render)
if not html_text:
logger.error(f"签到失败,请检查站点连通性")
return False, f'{site}签到失败,请检查站点连通性'
logger.error(f"{site} 签到失败,请检查站点连通性")
return False, '签到失败,请检查站点连通性'
if "login.php" in html_text:
logger.error(f"签到失败,Cookie失效")
return False, f'{site}签到失败,Cookie失效'
logger.error(f"{site} 签到失败,Cookie失效")
return False, '签到失败,Cookie失效'
# 判断是否已签到
sign_status = self.sign_in_result(html_res=html_text,
regexs=self._sign_regex)
if sign_status:
logger.info(f"今日已签到")
return True, f'{site}今日已签到'
logger.info(f"{site} 今日已签到")
return True, '今日已签到'
# 获取签到参数
signed_timestamp = re.search('(?<=signed_timestamp: ")\\d{10}', html_text).group()
@@ -82,16 +82,16 @@ class TTG(_ISiteSigninHandler):
).post_res(url="https://totheglory.im/signed.php",
data=data)
if not sign_res or sign_res.status_code != 200:
logger.error(f"签到失败,签到接口请求失败")
return False, f'{site}签到失败,签到接口请求失败'
logger.error(f"{site} 签到失败,签到接口请求失败")
return False, '签到失败,签到接口请求失败'
sign_res.encoding = "utf-8"
if self._success_text in sign_res.text:
logger.info(f"签到成功")
return True, f'{site}签到成功'
logger.info(f"{site} 签到成功")
return True, '签到成功'
if self._sign_text in sign_res.text:
logger.info(f"今日已签到")
return True, f'{site}今日已签到'
logger.info(f"{site} 今日已签到")
return True, '今日已签到'
logger.error(f"签到失败,未知原因")
return False, f'{site}签到失败,未知原因'
logger.error(f"{site} 签到失败,未知原因")
return False, '签到失败,未知原因'
+17 -17
View File
@@ -54,8 +54,8 @@ class U2(_ISiteSigninHandler):
now = datetime.datetime.now()
# 判断当前时间是否小于9点
if now.hour < 9:
logger.error(f"签到失败,9点前不签到")
return False, f'{site}签到失败,9点前不签到'
logger.error(f"{site} 签到失败,9点前不签到")
return False, '签到失败,9点前不签到'
# 获取页面html
html_text = self.get_page_source(url="https://u2.dmhy.org/showup.php",
@@ -64,25 +64,25 @@ class U2(_ISiteSigninHandler):
proxy=proxy,
render=render)
if not html_text:
logger.error(f"签到失败,请检查站点连通性")
return False, f'{site}签到失败,请检查站点连通性'
logger.error(f"{site} 签到失败,请检查站点连通性")
return False, '签到失败,请检查站点连通性'
if "login.php" in html_text:
logger.error(f"签到失败,Cookie失效")
return False, f'{site}签到失败,Cookie失效'
logger.error(f"{site} 签到失败,Cookie失效")
return False, '签到失败,Cookie失效'
# 判断是否已签到
sign_status = self.sign_in_result(html_res=html_text,
regexs=self._sign_regex)
if sign_status:
logger.info(f"今日已签到")
return True, f'{site}今日已签到'
logger.info(f"{site} 今日已签到")
return True, '今日已签到'
# 没有签到则解析html
html = etree.HTML(html_text)
if not html:
return False, f'{site}签到失败'
return False, '签到失败'
# 获取签到参数
req = html.xpath("//form//td/input[@name='req']/@value")[0]
@@ -91,8 +91,8 @@ class U2(_ISiteSigninHandler):
submit_name = html.xpath("//form//td/input[@type='submit']/@name")
submit_value = html.xpath("//form//td/input[@type='submit']/@value")
if not re or not hash_str or not form or not submit_name or not submit_value:
logger.error("签到失败,未获取到相关签到参数")
return False, f'{site}签到失败'
logger.error("{site} 签到失败,未获取到相关签到参数")
return False, '签到失败'
# 随机一个答案
answer_num = random.randint(0, 3)
@@ -110,14 +110,14 @@ class U2(_ISiteSigninHandler):
).post_res(url="https://u2.dmhy.org/showup.php?action=show",
data=data)
if not sign_res or sign_res.status_code != 200:
logger.error(f"签到失败,签到接口请求失败")
return False, f'{site}签到失败,签到接口请求失败'
logger.error(f"{site} 签到失败,签到接口请求失败")
return False, '签到失败,签到接口请求失败'
# 判断是否签到成功
# sign_res.text = "<script type="text/javascript">window.location.href = 'showup.php';</script>"
if self._success_text in sign_res.text:
logger.info(f"签到成功")
return True, f'{site}签到成功'
logger.info(f"{site} 签到成功")
return True, '签到成功'
else:
logger.error(f"签到失败,未知原因")
return False, f'{site}签到失败,未知原因'
logger.error(f"{site} 签到失败,未知原因")
return False, '签到失败,未知原因'
+6 -6
View File
@@ -46,17 +46,17 @@ class ZhuQue(_ISiteSigninHandler):
proxy=proxy,
render=render)
if not html_text:
logger.error(f"模拟登录失败,请检查站点连通性")
return False, f'{site}模拟登录失败,请检查站点连通性'
logger.error(f"{site} 模拟登录失败,请检查站点连通性")
return False, '模拟登录失败,请检查站点连通性'
if "login.php" in html_text:
logger.error(f"模拟登录失败,Cookie失效")
return False, f'{site}模拟登录失败,Cookie失效'
logger.error(f"{site} 模拟登录失败,Cookie失效")
return False, '模拟登录失败,Cookie失效'
html = etree.HTML(html_text)
if not html:
return False, f'{site}模拟登录失败'
return False, '模拟登录失败'
# 释放技能
msg = '失败'
@@ -85,4 +85,4 @@ class ZhuQue(_ISiteSigninHandler):
msg = f'成功,获得{bonus}魔力'
logger.info(f'{site}】模拟登录成功,技能释放{msg}')
return True, f'{site}模拟登录成功,技能释放{msg}'
return True, f'模拟登录成功,技能释放{msg}'