From 87e50b72dab09336dc4148685cbdc5b26212d051 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Thu, 20 Jul 2023 08:34:24 +0800 Subject: [PATCH] =?UTF-8?q?feat=20=E7=AD=BE=E5=88=B0=E7=BB=93=E6=9E=9C?= =?UTF-8?q?=E4=BF=9D=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/plugins/autosignin/__init__.py | 37 ++++++++++++++--------- app/plugins/autosignin/sites/52pt.py | 28 ++++++++--------- app/plugins/autosignin/sites/btschool.py | 20 ++++++------- app/plugins/autosignin/sites/chdbits.py | 28 ++++++++--------- app/plugins/autosignin/sites/haidan.py | 16 +++++----- app/plugins/autosignin/sites/hares.py | 22 +++++++------- app/plugins/autosignin/sites/hd4fans.py | 24 +++++++-------- app/plugins/autosignin/sites/hdarea.py | 20 ++++++------- app/plugins/autosignin/sites/hdchina.py | 34 ++++++++++----------- app/plugins/autosignin/sites/hdcity.py | 20 ++++++------- app/plugins/autosignin/sites/hdsky.py | 28 ++++++++--------- app/plugins/autosignin/sites/hdupt.py | 26 ++++++++-------- app/plugins/autosignin/sites/opencd.py | 36 +++++++++++----------- app/plugins/autosignin/sites/pterclub.py | 12 ++++---- app/plugins/autosignin/sites/tjupt.py | 38 ++++++++++++------------ app/plugins/autosignin/sites/ttg.py | 28 ++++++++--------- app/plugins/autosignin/sites/u2.py | 34 ++++++++++----------- app/plugins/autosignin/sites/zhuque.py | 12 ++++---- 18 files changed, 236 insertions(+), 227 deletions(-) diff --git a/app/plugins/autosignin/__init__.py b/app/plugins/autosignin/__init__.py index 21285a15..b96675d0 100644 --- a/app/plugins/autosignin/__init__.py +++ b/app/plugins/autosignin/__init__.py @@ -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): """ diff --git a/app/plugins/autosignin/sites/52pt.py b/app/plugins/autosignin/sites/52pt.py index 894eb45a..c557b033 100644 --- a/app/plugins/autosignin/sites/52pt.py +++ b/app/plugins/autosignin/sites/52pt.py @@ -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, '签到失败,请到页面查看' diff --git a/app/plugins/autosignin/sites/btschool.py b/app/plugins/autosignin/sites/btschool.py index b1d08145..3dfb5e9a 100644 --- a/app/plugins/autosignin/sites/btschool.py +++ b/app/plugins/autosignin/sites/btschool.py @@ -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, '签到成功' diff --git a/app/plugins/autosignin/sites/chdbits.py b/app/plugins/autosignin/sites/chdbits.py index af853467..4480e5f8 100644 --- a/app/plugins/autosignin/sites/chdbits.py +++ b/app/plugins/autosignin/sites/chdbits.py @@ -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, '签到失败,请到页面查看' diff --git a/app/plugins/autosignin/sites/haidan.py b/app/plugins/autosignin/sites/haidan.py index 2883f74c..aa6d8a4f 100644 --- a/app/plugins/autosignin/sites/haidan.py +++ b/app/plugins/autosignin/sites/haidan.py @@ -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, '签到失败' diff --git a/app/plugins/autosignin/sites/hares.py b/app/plugins/autosignin/sites/hares.py index f63b7cb6..729c62d5 100644 --- a/app/plugins/autosignin/sites/hares.py +++ b/app/plugins/autosignin/sites/hares.py @@ -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, '今日已签到' diff --git a/app/plugins/autosignin/sites/hd4fans.py b/app/plugins/autosignin/sites/hd4fans.py index b73fbc1a..8a15e795 100644 --- a/app/plugins/autosignin/sites/hd4fans.py +++ b/app/plugins/autosignin/sites/hd4fans.py @@ -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, '签到失败' diff --git a/app/plugins/autosignin/sites/hdarea.py b/app/plugins/autosignin/sites/hdarea.py index 7e4f5784..ddbf3f8e 100644 --- a/app/plugins/autosignin/sites/hdarea.py +++ b/app/plugins/autosignin/sites/hdarea.py @@ -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, '签到失败' diff --git a/app/plugins/autosignin/sites/hdchina.py b/app/plugins/autosignin/sites/hdchina.py index f7b1f9ed..146da72b 100644 --- a/app/plugins/autosignin/sites/hdchina.py +++ b/app/plugins/autosignin/sites/hdchina.py @@ -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, '签到失败' diff --git a/app/plugins/autosignin/sites/hdcity.py b/app/plugins/autosignin/sites/hdcity.py index e924776e..39058b26 100644 --- a/app/plugins/autosignin/sites/hdcity.py +++ b/app/plugins/autosignin/sites/hdcity.py @@ -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, '签到失败' diff --git a/app/plugins/autosignin/sites/hdsky.py b/app/plugins/autosignin/sites/hdsky.py index 10e8449b..af0d8193 100644 --- a/app/plugins/autosignin/sites/hdsky.py +++ b/app/plugins/autosignin/sites/hdsky.py @@ -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, '签到失败:未获取到验证码' diff --git a/app/plugins/autosignin/sites/hdupt.py b/app/plugins/autosignin/sites/hdupt.py index 97a426ed..2f9cce03 100644 --- a/app/plugins/autosignin/sites/hdupt.py +++ b/app/plugins/autosignin/sites/hdupt.py @@ -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, '签到失败' diff --git a/app/plugins/autosignin/sites/opencd.py b/app/plugins/autosignin/sites/opencd.py index 47e7cc90..45e84e78 100644 --- a/app/plugins/autosignin/sites/opencd.py +++ b/app/plugins/autosignin/sites/opencd.py @@ -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, '签到失败:未获取到验证码' diff --git a/app/plugins/autosignin/sites/pterclub.py b/app/plugins/autosignin/sites/pterclub.py index 761628bb..3995ac96 100644 --- a/app/plugins/autosignin/sites/pterclub.py +++ b/app/plugins/autosignin/sites/pterclub.py @@ -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":"

这是您的第237次签到, # 已连续签到237天。

本次签到获得300克猫粮。

"} - 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, '今日已签到' diff --git a/app/plugins/autosignin/sites/tjupt.py b/app/plugins/autosignin/sites/tjupt.py index a60c727c..48005a3e 100644 --- a/app/plugins/autosignin/sites/tjupt.py +++ b/app/plugins/autosignin/sites/tjupt.py @@ -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): """ diff --git a/app/plugins/autosignin/sites/ttg.py b/app/plugins/autosignin/sites/ttg.py index c9441e26..fad1c531 100644 --- a/app/plugins/autosignin/sites/ttg.py +++ b/app/plugins/autosignin/sites/ttg.py @@ -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, '签到失败,未知原因' diff --git a/app/plugins/autosignin/sites/u2.py b/app/plugins/autosignin/sites/u2.py index 88b1880b..0f944253 100644 --- a/app/plugins/autosignin/sites/u2.py +++ b/app/plugins/autosignin/sites/u2.py @@ -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 = "" 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, '签到失败,未知原因' diff --git a/app/plugins/autosignin/sites/zhuque.py b/app/plugins/autosignin/sites/zhuque.py index d810737b..48d70677 100644 --- a/app/plugins/autosignin/sites/zhuque.py +++ b/app/plugins/autosignin/sites/zhuque.py @@ -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}'