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