feat 签到结果保存
This commit is contained in:
parent
2d628361cf
commit
87e50b72da
@ -1,8 +1,9 @@
|
||||
import traceback
|
||||
from datetime import datetime
|
||||
from multiprocessing.dummy import Pool as ThreadPool
|
||||
from multiprocessing.pool import ThreadPool
|
||||
from threading import Event
|
||||
from typing import Any, List, Dict
|
||||
from typing import Any, List, Dict, Tuple
|
||||
from urllib.parse import urljoin
|
||||
|
||||
from apscheduler.schedulers.background import BackgroundScheduler
|
||||
@ -133,8 +134,16 @@ class AutoSignIn(_PluginBase):
|
||||
|
||||
if status:
|
||||
logger.info("站点签到任务完成!")
|
||||
# 获取今天的日期
|
||||
key = datetime.now().strftime('%Y-%m-%d')
|
||||
# 保存数据
|
||||
self.save_data(key, [{
|
||||
"site": s[0],
|
||||
"status": s[1]
|
||||
} for s in status])
|
||||
# 发送通知
|
||||
self.chain.post_message(title="站点自动签到", text="\n".join([s for s in status if s]))
|
||||
self.chain.post_message(title="站点自动签到",
|
||||
text="\n".join([f'【{s[0]}】{s[1]}' for s in status if s]))
|
||||
else:
|
||||
logger.error("站点签到任务失败!")
|
||||
|
||||
@ -164,21 +173,21 @@ class AutoSignIn(_PluginBase):
|
||||
message=self.signin_site(site_info)
|
||||
)
|
||||
|
||||
def signin_site(self, site_info: CommentedMap) -> str:
|
||||
def signin_site(self, site_info: CommentedMap) -> Tuple[str, str]:
|
||||
"""
|
||||
签到一个站点
|
||||
"""
|
||||
site_module = self.__build_class(site_info.get("url"))
|
||||
if site_module and hasattr(site_module, "signin"):
|
||||
try:
|
||||
status, msg = site_module().signin(site_info)
|
||||
_, msg = site_module().signin(site_info)
|
||||
# 特殊站点直接返回签到信息,防止仿真签到、模拟登陆有歧义
|
||||
return msg or ""
|
||||
return site_info.get("name"), msg or ""
|
||||
except Exception as e:
|
||||
traceback.print_exc()
|
||||
return f"【{site_info.get('name')}】签到失败:{str(e)}"
|
||||
return site_info.get("name"), f"签到失败:{str(e)}"
|
||||
else:
|
||||
return self.__signin_base(site_info)
|
||||
return site_info.get("name"), self.__signin_base(site_info)
|
||||
|
||||
@staticmethod
|
||||
def __signin_base(site_info: CommentedMap) -> str:
|
||||
@ -214,8 +223,8 @@ class AutoSignIn(_PluginBase):
|
||||
proxies=proxy_server)
|
||||
if not SiteUtils.is_logged_in(page_source):
|
||||
if under_challenge(page_source):
|
||||
return f"【{site}】无法通过Cloudflare!"
|
||||
return f"【{site}】仿真登录失败,Cookie已失效!"
|
||||
return f"无法通过Cloudflare!"
|
||||
return f"仿真登录失败,Cookie已失效!"
|
||||
else:
|
||||
res = RequestUtils(cookies=site_cookie,
|
||||
ua=ua,
|
||||
@ -237,20 +246,20 @@ class AutoSignIn(_PluginBase):
|
||||
else:
|
||||
msg = f"状态码:{res.status_code}"
|
||||
logger.warn(f"{site} 签到失败,{msg}")
|
||||
return f"【{site}】签到失败,{msg}!"
|
||||
return f"签到失败,{msg}!"
|
||||
else:
|
||||
logger.info(f"{site} 签到成功")
|
||||
return f"【{site}】签到成功"
|
||||
return f"签到成功"
|
||||
elif res is not None:
|
||||
logger.warn(f"{site} 签到失败,状态码:{res.status_code}")
|
||||
return f"【{site}】签到失败,状态码:{res.status_code}!"
|
||||
return f"签到失败,状态码:{res.status_code}!"
|
||||
else:
|
||||
logger.warn(f"{site} 签到失败,无法打开网站")
|
||||
return f"【{site}】签到失败,无法打开网站!"
|
||||
return f"签到失败,无法打开网站!"
|
||||
except Exception as e:
|
||||
logger.warn("%s 签到失败:%s" % (site, str(e)))
|
||||
traceback.print_exc()
|
||||
return f"【{site}】签到失败:{str(e)}!"
|
||||
return f"签到失败:{str(e)}!"
|
||||
|
||||
def stop_service(self):
|
||||
"""
|
||||
|
@ -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, '签到失败,请到页面查看'
|
||||
|
@ -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, '签到成功'
|
||||
|
@ -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, '签到失败,请到页面查看'
|
||||
|
@ -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, '签到失败'
|
||||
|
@ -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, '今日已签到'
|
||||
|
@ -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, '签到失败'
|
||||
|
@ -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, '签到失败'
|
||||
|
@ -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, '签到失败'
|
||||
|
@ -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, '签到失败'
|
||||
|
@ -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, '签到失败:未获取到验证码'
|
||||
|
@ -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, '签到失败'
|
||||
|
@ -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, '签到失败:未获取到验证码'
|
||||
|
@ -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, '今日已签到'
|
||||
|
@ -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):
|
||||
"""
|
||||
|
@ -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, '签到失败,未知原因'
|
||||
|
@ -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, '签到失败,未知原因'
|
||||
|
@ -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}'
|
||||
|
Loading…
x
Reference in New Issue
Block a user