From ac4b53e7457c806b7f65f4b9658cc388c7dca6b3 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Tue, 12 Aug 2025 08:25:09 +0800 Subject: [PATCH] AutoSignIn v2.7 --- package.v2.json | 3 ++- plugins.v2/autosignin/__init__.py | 26 +++++++++++++++---------- plugins.v2/autosignin/sites/52pt.py | 18 ++++++++++------- plugins.v2/autosignin/sites/__init__.py | 10 +++++++--- plugins.v2/autosignin/sites/btschool.py | 7 +++++-- plugins.v2/autosignin/sites/chdbits.py | 4 +++- plugins.v2/autosignin/sites/haidan.py | 13 ++++++++----- plugins.v2/autosignin/sites/hares.py | 7 +++++-- plugins.v2/autosignin/sites/hdarea.py | 4 +++- plugins.v2/autosignin/sites/hdchina.py | 7 +++++-- plugins.v2/autosignin/sites/hdcity.py | 4 +++- plugins.v2/autosignin/sites/hdsky.py | 7 +++++-- plugins.v2/autosignin/sites/hdupt.py | 7 +++++-- plugins.v2/autosignin/sites/mteam.py | 4 ++-- plugins.v2/autosignin/sites/nexushd.py | 4 +++- plugins.v2/autosignin/sites/opencd.py | 4 +++- plugins.v2/autosignin/sites/pterclub.py | 4 +++- plugins.v2/autosignin/sites/pttime.py | 4 +++- plugins.v2/autosignin/sites/tjupt.py | 4 +++- plugins.v2/autosignin/sites/ttg.py | 4 +++- plugins.v2/autosignin/sites/u2.py | 4 +++- plugins.v2/autosignin/sites/yema.py | 4 ++-- plugins.v2/autosignin/sites/zhuque.py | 7 +++++-- plugins/autosignin/sites/__init__.py | 3 +-- plugins/autosignin/sites/btschool.py | 4 +--- plugins/autosignin/sites/chdbits.py | 3 +-- plugins/autosignin/sites/haidan.py | 4 +--- plugins/autosignin/sites/hares.py | 4 +--- plugins/autosignin/sites/hdarea.py | 4 +--- plugins/autosignin/sites/hdchina.py | 3 +-- plugins/autosignin/sites/hdcity.py | 4 +--- plugins/autosignin/sites/hdsky.py | 4 +--- plugins/autosignin/sites/hdupt.py | 4 +--- plugins/autosignin/sites/mteam.py | 7 ++----- plugins/autosignin/sites/nexushd.py | 4 +--- plugins/autosignin/sites/opencd.py | 3 +-- plugins/autosignin/sites/pterclub.py | 4 +--- plugins/autosignin/sites/pttime.py | 4 +--- plugins/autosignin/sites/tjupt.py | 3 +-- plugins/autosignin/sites/ttg.py | 4 +--- plugins/autosignin/sites/u2.py | 3 +-- plugins/autosignin/sites/yema.py | 6 ++---- plugins/autosignin/sites/zhuque.py | 3 +-- 43 files changed, 130 insertions(+), 108 deletions(-) diff --git a/package.v2.json b/package.v2.json index f65004f..5b2d115 100644 --- a/package.v2.json +++ b/package.v2.json @@ -42,12 +42,13 @@ "name": "站点自动签到", "description": "自动模拟登录、签到站点。", "labels": "站点", - "version": "2.6", + "version": "2.7", "icon": "signin.png", "author": "thsrite", "level": 2, "release": true, "history": { + "v2.7": "站点请求使用站点设置的超时时间", "v2.6": "感谢madrays佬提供的UI!", "v2.5.4": "增加保号风险提示", "v2.5.3": "优化执行周期输入,需要MoviePilot v2.2.1+", diff --git a/plugins.v2/autosignin/__init__.py b/plugins.v2/autosignin/__init__.py index 0661da8..231d2a8 100644 --- a/plugins.v2/autosignin/__init__.py +++ b/plugins.v2/autosignin/__init__.py @@ -7,10 +7,6 @@ from typing import Any, List, Dict, Tuple, Optional from urllib.parse import urljoin import pytz -from apscheduler.schedulers.background import BackgroundScheduler -from apscheduler.triggers.cron import CronTrigger -from ruamel.yaml import CommentedMap - from app import schemas from app.core.config import settings from app.core.event import eventmanager, Event @@ -26,6 +22,9 @@ from app.utils.http import RequestUtils from app.utils.site import SiteUtils from app.utils.string import StringUtils from app.utils.timer import TimerUtils +from apscheduler.schedulers.background import BackgroundScheduler +from apscheduler.triggers.cron import CronTrigger +from ruamel.yaml import CommentedMap class AutoSignIn(_PluginBase): @@ -36,7 +35,7 @@ class AutoSignIn(_PluginBase): # 插件图标 plugin_icon = "signin.png" # 插件版本 - plugin_version = "2.6" + plugin_version = "2.7" # 插件作者 plugin_author = "thsrite" # 作者主页 @@ -1545,6 +1544,7 @@ class AutoSignIn(_PluginBase): render = site_info.get("render") proxies = settings.PROXY if site_info.get("proxy") else None proxy_server = settings.PROXY_SERVER if site_info.get("proxy") else None + timeout = site_info.get("timeout") or 60 if not site_url or not site_cookie: logger.warn(f"未配置 {site} 的站点地址或Cookie,无法签到") return False, "" @@ -1560,7 +1560,8 @@ class AutoSignIn(_PluginBase): page_source = PlaywrightHelper().get_page_source(url=checkin_url, cookies=site_cookie, ua=ua, - proxies=proxy_server) + proxies=proxy_server, + timeout=timeout) if not SiteUtils.is_logged_in(page_source): if under_challenge(page_source): return False, f"无法通过Cloudflare!" @@ -1574,13 +1575,15 @@ class AutoSignIn(_PluginBase): else: res = RequestUtils(cookies=site_cookie, ua=ua, - proxies=proxies + proxies=proxies, + timeout=timeout ).get_res(url=checkin_url) if not res and site_url != checkin_url: logger.info(f"开始站点模拟登录:{site},地址:{site_url}...") res = RequestUtils(cookies=site_cookie, ua=ua, - proxies=proxies + proxies=proxies, + timeout=timeout ).get_res(url=site_url) # 判断登录状态 if res and res.status_code in [200, 500, 403]: @@ -1647,6 +1650,7 @@ class AutoSignIn(_PluginBase): render = site_info.get("render") proxies = settings.PROXY if site_info.get("proxy") else None proxy_server = settings.PROXY_SERVER if site_info.get("proxy") else None + timeout = site_info.get("timeout") or 60 if not site_url or not site_cookie: logger.warn(f"未配置 {site} 的站点地址或Cookie,无法签到") return False, "" @@ -1659,7 +1663,8 @@ class AutoSignIn(_PluginBase): page_source = PlaywrightHelper().get_page_source(url=site_url, cookies=site_cookie, ua=ua, - proxies=proxy_server) + proxies=proxy_server, + timeout=timeout) if not SiteUtils.is_logged_in(page_source): if under_challenge(page_source): return False, f"无法通过Cloudflare!" @@ -1669,7 +1674,8 @@ class AutoSignIn(_PluginBase): else: res = RequestUtils(cookies=site_cookie, ua=ua, - proxies=proxies + proxies=proxies, + timeout=timeout ).get_res(url=site_url) # 判断登录状态 if res and res.status_code in [200, 500, 403]: diff --git a/plugins.v2/autosignin/sites/52pt.py b/plugins.v2/autosignin/sites/52pt.py index 44c6155..e534610 100644 --- a/plugins.v2/autosignin/sites/52pt.py +++ b/plugins.v2/autosignin/sites/52pt.py @@ -2,13 +2,12 @@ import random import re from typing import Tuple -from lxml import etree - from app.core.config import settings from app.log import logger from app.plugins.autosignin.sites import _ISiteSigninHandler from app.utils.http import RequestUtils from app.utils.string import StringUtils +from lxml import etree class Pt52(_ISiteSigninHandler): @@ -46,14 +45,16 @@ class Pt52(_ISiteSigninHandler): ua = site_info.get("ua") render = site_info.get("render") proxy = site_info.get("proxy") + timeout = site_info.get("timeout") # 判断今日是否已签到 html_text = self.get_page_source(url='https://52pt.site/bakatest.php', cookie=site_cookie, ua=ua, proxy=proxy, - render=render) - + render=render, + timeout=timeout) + if not html_text: logger.error(f"{site} 签到失败,请检查站点连通性") return False, '签到失败,请检查站点连通性' @@ -97,14 +98,16 @@ class Pt52(_ISiteSigninHandler): site_cookie=site_cookie, ua=ua, proxy=proxy, - site=site) + site=site, + timeout=timeout) def __signin(self, questionid: str, choice: list, site: str, site_cookie: str, ua: str, - proxy: bool) -> Tuple[bool, str]: + proxy: bool, + timeout: int) -> Tuple[bool, str]: """ 签到请求 questionid: 450 @@ -124,7 +127,8 @@ class Pt52(_ISiteSigninHandler): sign_res = RequestUtils(cookies=site_cookie, ua=ua, - proxies=settings.PROXY if proxy else None + proxies=settings.PROXY if proxy else None, + timeout=timeout ).post_res(url='https://52pt.site/bakatest.php', data=data) if not sign_res or sign_res.status_code != 200: logger.error(f"{site} 签到失败,签到接口请求失败") diff --git a/plugins.v2/autosignin/sites/__init__.py b/plugins.v2/autosignin/sites/__init__.py index b0e2ef2..895bee8 100644 --- a/plugins.v2/autosignin/sites/__init__.py +++ b/plugins.v2/autosignin/sites/__init__.py @@ -42,7 +42,8 @@ class _ISiteSigninHandler(metaclass=ABCMeta): pass @staticmethod - def get_page_source(url: str, cookie: str, ua: str, proxy: bool, render: bool, token: str = None) -> str: + def get_page_source(url: str, cookie: str, ua: str, proxy: bool, render: bool, + token: str = None, timeout: int = None) -> str: """ 获取页面源码 :param url: Url地址 @@ -51,13 +52,15 @@ class _ISiteSigninHandler(metaclass=ABCMeta): :param proxy: 是否使用代理 :param render: 是否渲染 :param token: JWT Token + :param timeout: 请求超时时间,单位秒 :return: 页面源码,错误信息 """ if render: return PlaywrightHelper().get_page_source(url=url, cookies=cookie, ua=ua, - proxies=settings.PROXY_SERVER if proxy else None) + proxies=settings.PROXY_SERVER if proxy else None, + timeout=timeout or 60) else: if token: headers = { @@ -70,7 +73,8 @@ class _ISiteSigninHandler(metaclass=ABCMeta): "Cookie": cookie } res = RequestUtils(headers=headers, - proxies=settings.PROXY if proxy else None).get_res(url=url) + proxies=settings.PROXY if proxy else None, + timeout=timeout or 20).get_res(url=url) if res is not None: # 使用chardet检测字符编码 raw_data = res.content diff --git a/plugins.v2/autosignin/sites/btschool.py b/plugins.v2/autosignin/sites/btschool.py index b8f2671..6cc8efb 100644 --- a/plugins.v2/autosignin/sites/btschool.py +++ b/plugins.v2/autosignin/sites/btschool.py @@ -37,6 +37,7 @@ class BTSchool(_ISiteSigninHandler): ua = site_info.get("ua") render = site_info.get("render") proxy = site_info.get("proxy") + timeout = site_info.get("timeout") logger.info(f"{site} 开始签到") # 判断今日是否已签到 @@ -44,7 +45,8 @@ class BTSchool(_ISiteSigninHandler): cookie=site_cookie, ua=ua, proxy=proxy, - render=render) + render=render, + timeout=timeout) if not html_text: logger.error(f"{site} 签到失败,请检查站点连通性") @@ -63,7 +65,8 @@ class BTSchool(_ISiteSigninHandler): cookie=site_cookie, ua=ua, proxy=proxy, - render=render) + render=render, + timeout=timeout) if not html_text: logger.error(f"{site} 签到失败,签到接口请求失败") diff --git a/plugins.v2/autosignin/sites/chdbits.py b/plugins.v2/autosignin/sites/chdbits.py index ed2cf67..a51f14c 100644 --- a/plugins.v2/autosignin/sites/chdbits.py +++ b/plugins.v2/autosignin/sites/chdbits.py @@ -47,13 +47,15 @@ class CHDBits(_ISiteSigninHandler): ua = site_info.get("ua") proxy = site_info.get("proxy") render = site_info.get("render") + timeout = site_info.get("timeout") # 判断今日是否已签到 html_text = self.get_page_source(url='https://ptchdbits.co/bakatest.php', cookie=site_cookie, ua=ua, proxy=proxy, - render=render) + render=render, + timeout=timeout) if not html_text: logger.error(f"{site} 签到失败,请检查站点连通性") diff --git a/plugins.v2/autosignin/sites/haidan.py b/plugins.v2/autosignin/sites/haidan.py index 23f6b03..d226d5c 100644 --- a/plugins.v2/autosignin/sites/haidan.py +++ b/plugins.v2/autosignin/sites/haidan.py @@ -37,21 +37,24 @@ class HaiDan(_ISiteSigninHandler): ua = site_info.get("ua") proxy = site_info.get("proxy") render = site_info.get("render") + timeout = site_info.get("timeout") # 签到 # 签到页会重定向到index.php,由于302重定向特性,导致index.php没有携带cookie self.get_page_source(url='https://www.haidan.video/signin.php', - cookie=site_cookie, - ua=ua, - proxy=proxy, - render=render) + cookie=site_cookie, + ua=ua, + proxy=proxy, + render=render, + timeout=timeout) # 重新携带cookie获取index.php查看签到结果 html_text = self.get_page_source(url='https://www.haidan.video/index.php', cookie=site_cookie, ua=ua, proxy=proxy, - render=render) + render=render, + timeout=timeout) if not html_text: logger.error(f"{site} 签到失败,请检查站点连通性") return False, '签到失败,请检查站点连通性' diff --git a/plugins.v2/autosignin/sites/hares.py b/plugins.v2/autosignin/sites/hares.py index 5aea8f1..c5e944a 100644 --- a/plugins.v2/autosignin/sites/hares.py +++ b/plugins.v2/autosignin/sites/hares.py @@ -40,13 +40,15 @@ class Hares(_ISiteSigninHandler): ua = site_info.get("ua") proxy = site_info.get("proxy") render = site_info.get("render") + timeout = site_info.get("timeout") # 获取页面html html_text = self.get_page_source(url='https://club.hares.top', cookie=site_cookie, ua=ua, proxy=proxy, - render=render) + render=render, + timeout=timeout) if not html_text: logger.error(f"{site} 模拟访问失败,请检查站点连通性") @@ -66,7 +68,8 @@ class Hares(_ISiteSigninHandler): } sign_res = RequestUtils(cookies=site_cookie, headers=headers, - proxies=settings.PROXY if proxy else None + proxies=settings.PROXY if proxy else None, + timeout=timeout ).get_res(url="https://club.hares.top/attendance.php?action=sign") if not sign_res or sign_res.status_code != 200: logger.error(f"{site} 签到失败,签到接口请求失败") diff --git a/plugins.v2/autosignin/sites/hdarea.py b/plugins.v2/autosignin/sites/hdarea.py index d88800a..9f4076b 100644 --- a/plugins.v2/autosignin/sites/hdarea.py +++ b/plugins.v2/autosignin/sites/hdarea.py @@ -40,6 +40,7 @@ class HDArea(_ISiteSigninHandler): site_cookie = site_info.get("cookie") ua = site_info.get("ua") proxies = settings.PROXY if site_info.get("proxy") else None + timeout = site_info.get("timeout") # 获取页面html data = { @@ -47,7 +48,8 @@ class HDArea(_ISiteSigninHandler): } html_res = RequestUtils(cookies=site_cookie, ua=ua, - proxies=proxies + proxies=proxies, + timeout=timeout ).post_res(url="https://hdarea.club/sign_in.php", data=data) if not html_res or html_res.status_code != 200: logger.error(f"{site} 签到失败,请检查站点连通性") diff --git a/plugins.v2/autosignin/sites/hdchina.py b/plugins.v2/autosignin/sites/hdchina.py index 1d14982..86edf25 100644 --- a/plugins.v2/autosignin/sites/hdchina.py +++ b/plugins.v2/autosignin/sites/hdchina.py @@ -40,6 +40,7 @@ class HDChina(_ISiteSigninHandler): site_cookie = site_info.get("cookie") ua = site_info.get("ua") proxies = settings.PROXY if site_info.get("proxy") else None + timeout = site_info.get("timeout") # 尝试解决瓷器cookie每天签到后过期,只保留hdchina=部分 cookie = "" @@ -59,7 +60,8 @@ class HDChina(_ISiteSigninHandler): # 获取页面html html_res = RequestUtils(cookies=site_cookie, ua=ua, - proxies=proxies + proxies=proxies, + timeout=timeout ).get_res(url="https://hdchina.org/index.php") if not html_res or html_res.status_code != 200: logger.error(f"{site} 签到失败,请检查站点连通性") @@ -99,7 +101,8 @@ class HDChina(_ISiteSigninHandler): } sign_res = RequestUtils(cookies=site_cookie, ua=ua, - proxies=proxies + proxies=proxies, + timeout=timeout ).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"{site} 签到失败,签到接口请求失败") diff --git a/plugins.v2/autosignin/sites/hdcity.py b/plugins.v2/autosignin/sites/hdcity.py index 229a523..bb5bc27 100644 --- a/plugins.v2/autosignin/sites/hdcity.py +++ b/plugins.v2/autosignin/sites/hdcity.py @@ -39,13 +39,15 @@ class HDCity(_ISiteSigninHandler): ua = site_info.get("ua") proxy = site_info.get("proxy") render = site_info.get("render") + timeout = site_info.get("timeout") # 获取页面html html_text = self.get_page_source(url='https://hdcity.city/sign', cookie=site_cookie, ua=ua, proxy=proxy, - render=render) + render=render, + timeout=timeout) if not html_text: logger.error(f"{site} 签到失败,请检查站点连通性") return False, '签到失败,请检查站点连通性' diff --git a/plugins.v2/autosignin/sites/hdsky.py b/plugins.v2/autosignin/sites/hdsky.py index 0c3d844..e64474a 100644 --- a/plugins.v2/autosignin/sites/hdsky.py +++ b/plugins.v2/autosignin/sites/hdsky.py @@ -43,13 +43,15 @@ class HDSky(_ISiteSigninHandler): proxy = site_info.get("proxy") render = site_info.get("render") referer = site_info.get("url") + timeout = site_info.get("timeout") # 判断今日是否已签到 html_text = self.get_page_source(url='https://hdsky.me', cookie=site_cookie, ua=ua, proxy=proxy, - render=render) + render=render, + timeout=timeout) if not html_text: logger.error(f"{site} 签到失败,请检查站点连通性") return False, '签到失败,请检查站点连通性' @@ -73,7 +75,8 @@ class HDSky(_ISiteSigninHandler): content_type='application/x-www-form-urlencoded; charset=UTF-8', referer="https://hdsky.me/index.php", accept_type="*/*", - proxies=settings.PROXY if proxy else None + proxies=settings.PROXY if proxy else None, + timeout=timeout ).post_res(url='https://hdsky.me/image_code_ajax.php', data={'action': 'new'}) if image_res and image_res.status_code == 200: diff --git a/plugins.v2/autosignin/sites/hdupt.py b/plugins.v2/autosignin/sites/hdupt.py index 470981d..92ddd4a 100644 --- a/plugins.v2/autosignin/sites/hdupt.py +++ b/plugins.v2/autosignin/sites/hdupt.py @@ -41,13 +41,15 @@ class HDUpt(_ISiteSigninHandler): ua = site_info.get("ua") proxy = site_info.get("proxy") render = site_info.get("render") + timeout = site_info.get("timeout") # 获取页面html html_text = self.get_page_source(url='https://pt.hdupt.com', cookie=site_cookie, ua=ua, proxy=proxy, - render=render) + render=render, + timeout=timeout) if not html_text: logger.error(f"{site} 签到失败,请检查站点连通性") return False, '签到失败,请检查站点连通性' @@ -67,7 +69,8 @@ class HDUpt(_ISiteSigninHandler): cookie=site_cookie, ua=ua, proxy=proxy, - render=render) + render=render, + timeout=timeout) if not html_text: logger.error(f"{site} 签到失败,请检查站点连通性") return False, '签到失败,请检查站点连通性' diff --git a/plugins.v2/autosignin/sites/mteam.py b/plugins.v2/autosignin/sites/mteam.py index 5db1ef1..be4dbde 100644 --- a/plugins.v2/autosignin/sites/mteam.py +++ b/plugins.v2/autosignin/sites/mteam.py @@ -1,5 +1,4 @@ from typing import Tuple -from urllib.parse import urljoin from ruamel.yaml import CommentedMap @@ -38,10 +37,11 @@ class MTorrent(_ISiteSigninHandler): "Authorization": site_info.get("token") } url = site_info.get('url') + timeout = site_info.get("timeout") domain = StringUtils.get_url_domain(url) # 更新最后访问时间 res = RequestUtils(headers=headers, - timeout=60, + timeout=timeout, proxies=settings.PROXY if site_info.get("proxy") else None, referer=f"{url}index" ).post_res(url=f"https://api.{domain}/api/member/updateLastBrowse") diff --git a/plugins.v2/autosignin/sites/nexushd.py b/plugins.v2/autosignin/sites/nexushd.py index 78941c0..d5688b3 100644 --- a/plugins.v2/autosignin/sites/nexushd.py +++ b/plugins.v2/autosignin/sites/nexushd.py @@ -40,6 +40,7 @@ class NexusHD(_ISiteSigninHandler): site_cookie = site_info.get("cookie") ua = site_info.get("ua") proxies = settings.PROXY if site_info.get("proxy") else None + timeout = site_info.get("timeout") # 获取页面html data = { @@ -48,7 +49,8 @@ class NexusHD(_ISiteSigninHandler): } html_res = RequestUtils(cookies=site_cookie, ua=ua, - proxies=proxies + proxies=proxies, + timeout=timeout ).post_res(url="https://v6.nexushd.org/signin.php", data=data) if not html_res or html_res.status_code != 200: logger.error(f"{site} 签到失败,请检查站点连通性") diff --git a/plugins.v2/autosignin/sites/opencd.py b/plugins.v2/autosignin/sites/opencd.py index 1f8d0c1..b680773 100644 --- a/plugins.v2/autosignin/sites/opencd.py +++ b/plugins.v2/autosignin/sites/opencd.py @@ -43,13 +43,15 @@ class Opencd(_ISiteSigninHandler): ua = site_info.get("ua") proxy = site_info.get("proxy") render = site_info.get("render") + timeout = site_info.get("timeout") # 判断今日是否已签到 html_text = self.get_page_source(url='https://www.open.cd', cookie=site_cookie, ua=ua, proxy=proxy, - render=render) + render=render, + timeout=timeout) if not html_text: logger.error(f"{site} 签到失败,请检查站点连通性") return False, '签到失败,请检查站点连通性' diff --git a/plugins.v2/autosignin/sites/pterclub.py b/plugins.v2/autosignin/sites/pterclub.py index 4047272..cd11ab4 100644 --- a/plugins.v2/autosignin/sites/pterclub.py +++ b/plugins.v2/autosignin/sites/pterclub.py @@ -35,13 +35,15 @@ class PTerClub(_ISiteSigninHandler): ua = site_info.get("ua") proxy = site_info.get("proxy") render = site_info.get("render") + timeout = site_info.get("timeout") # 签到 html_text = self.get_page_source(url='https://pterclub.com/attendance-ajax.php', cookie=site_cookie, ua=ua, proxy=proxy, - render=render) + render=render, + timeout=timeout) if not html_text: logger.error(f"{site} 签到失败,请检查站点连通性") return False, '签到失败,请检查站点连通性' diff --git a/plugins.v2/autosignin/sites/pttime.py b/plugins.v2/autosignin/sites/pttime.py index 6c766d2..6747048 100644 --- a/plugins.v2/autosignin/sites/pttime.py +++ b/plugins.v2/autosignin/sites/pttime.py @@ -37,6 +37,7 @@ class PTTime(_ISiteSigninHandler): ua = site_info.get("ua") proxy = site_info.get("proxy") render = site_info.get("render") + timeout = site_info.get("timeout") # 签到 # 签到返回:签到成功 @@ -44,7 +45,8 @@ class PTTime(_ISiteSigninHandler): cookie=site_cookie, ua=ua, proxy=proxy, - render=render) + render=render, + timeout=timeout) if not html_text: logger.error(f"{site} 签到失败,请检查站点连通性") diff --git a/plugins.v2/autosignin/sites/tjupt.py b/plugins.v2/autosignin/sites/tjupt.py index 4a20f84..bdb395f 100644 --- a/plugins.v2/autosignin/sites/tjupt.py +++ b/plugins.v2/autosignin/sites/tjupt.py @@ -57,6 +57,7 @@ class Tjupt(_ISiteSigninHandler): ua = site_info.get("ua") proxy = site_info.get("proxy") render = site_info.get("render") + timeout = site_info.get("timeout") # 创建正确答案存储目录 if not os.path.exists(os.path.dirname(self._answer_file)): @@ -67,7 +68,8 @@ class Tjupt(_ISiteSigninHandler): cookie=site_cookie, ua=ua, proxy=proxy, - render=render) + render=render, + timeout=timeout) # 获取签到后返回html,判断是否签到成功 if not html_text: diff --git a/plugins.v2/autosignin/sites/ttg.py b/plugins.v2/autosignin/sites/ttg.py index d3470a6..903b508 100644 --- a/plugins.v2/autosignin/sites/ttg.py +++ b/plugins.v2/autosignin/sites/ttg.py @@ -44,13 +44,15 @@ class TTG(_ISiteSigninHandler): ua = site_info.get("ua") proxy = site_info.get("proxy") render = site_info.get("render") + timeout = site_info.get("timeout") # 获取页面html html_text = self.get_page_source(url="https://totheglory.im", cookie=site_cookie, ua=ua, proxy=proxy, - render=render) + render=render, + timeout=timeout) if not html_text: logger.error(f"{site} 签到失败,请检查站点连通性") return False, '签到失败,请检查站点连通性' diff --git a/plugins.v2/autosignin/sites/u2.py b/plugins.v2/autosignin/sites/u2.py index 2c45c2c..2cfd169 100644 --- a/plugins.v2/autosignin/sites/u2.py +++ b/plugins.v2/autosignin/sites/u2.py @@ -50,6 +50,7 @@ class U2(_ISiteSigninHandler): ua = site_info.get("ua") proxy = site_info.get("proxy") render = site_info.get("render") + timeout = site_info.get("timeout") now = datetime.datetime.now() # 判断当前时间是否小于9点 @@ -62,7 +63,8 @@ class U2(_ISiteSigninHandler): cookie=site_cookie, ua=ua, proxy=proxy, - render=render) + render=render, + timeout=timeout) if not html_text: logger.error(f"{site} 签到失败,请检查站点连通性") return False, '签到失败,请检查站点连通性' diff --git a/plugins.v2/autosignin/sites/yema.py b/plugins.v2/autosignin/sites/yema.py index 879611f..04908c0 100644 --- a/plugins.v2/autosignin/sites/yema.py +++ b/plugins.v2/autosignin/sites/yema.py @@ -37,7 +37,7 @@ class YemaPT(_ISiteSigninHandler): } # 获取用户信息,更新最后访问时间 res = (RequestUtils(headers=headers, - timeout=15, + timeout=site_info.get("timeout"), cookies=site_info.get("cookie"), proxies=settings.PROXY if site_info.get("proxy") else None, referer=site_info.get('url') @@ -64,7 +64,7 @@ class YemaPT(_ISiteSigninHandler): } # 获取用户信息,更新最后访问时间 res = (RequestUtils(headers=headers, - timeout=15, + timeout=site_info.get("timeout"), cookies=site_info.get("cookie"), proxies=settings.PROXY if site_info.get("proxy") else None, referer=site_info.get('url') diff --git a/plugins.v2/autosignin/sites/zhuque.py b/plugins.v2/autosignin/sites/zhuque.py index f3375f5..9a0819c 100644 --- a/plugins.v2/autosignin/sites/zhuque.py +++ b/plugins.v2/autosignin/sites/zhuque.py @@ -38,13 +38,15 @@ class ZhuQue(_ISiteSigninHandler): ua = site_info.get("ua") proxy = site_info.get("proxy") render = site_info.get("render") + timeout = site_info.get("timeout") # 获取页面html html_text = self.get_page_source(url="https://zhuque.in", cookie=site_cookie, ua=ua, proxy=proxy, - render=render) + render=render, + timeout=timeout) if not html_text: logger.error(f"{site} 模拟登录失败,请检查站点连通性") return False, '模拟登录失败,请检查站点连通性' @@ -73,7 +75,8 @@ class ZhuQue(_ISiteSigninHandler): } skill_res = RequestUtils(cookies=site_cookie, headers=headers, - proxies=settings.PROXY if proxy else None + proxies=settings.PROXY if proxy else None, + timeout=timeout ).post_res(url="https://zhuque.in/api/gaming/fireGenshinCharacterMagic", json=data) if not skill_res or skill_res.status_code != 200: logger.error(f"模拟登录失败,释放技能失败") diff --git a/plugins/autosignin/sites/__init__.py b/plugins/autosignin/sites/__init__.py index b0e2ef2..fe41d3e 100644 --- a/plugins/autosignin/sites/__init__.py +++ b/plugins/autosignin/sites/__init__.py @@ -4,7 +4,6 @@ from abc import ABCMeta, abstractmethod from typing import Tuple import chardet -from ruamel.yaml import CommentedMap from app.core.config import settings from app.helper.browser import PlaywrightHelper @@ -33,7 +32,7 @@ class _ISiteSigninHandler(metaclass=ABCMeta): return False @abstractmethod - def signin(self, site_info: CommentedMap) -> Tuple[bool, str]: + def signin(self, site_info: dict) -> Tuple[bool, str]: """ 执行签到操作 :param site_info: 站点信息,含有站点Url、站点Cookie、UA等信息 diff --git a/plugins/autosignin/sites/btschool.py b/plugins/autosignin/sites/btschool.py index b8f2671..8b110c6 100644 --- a/plugins/autosignin/sites/btschool.py +++ b/plugins/autosignin/sites/btschool.py @@ -1,7 +1,5 @@ from typing import Tuple -from ruamel.yaml import CommentedMap - from app.log import logger from app.plugins.autosignin.sites import _ISiteSigninHandler from app.utils.string import StringUtils @@ -26,7 +24,7 @@ class BTSchool(_ISiteSigninHandler): """ return True if StringUtils.url_equal(url, cls.site_url) else False - def signin(self, site_info: CommentedMap) -> Tuple[bool, str]: + def signin(self, site_info: dict) -> Tuple[bool, str]: """ 执行签到操作 :param site_info: 站点信息,含有站点Url、站点Cookie、UA等信息 diff --git a/plugins/autosignin/sites/chdbits.py b/plugins/autosignin/sites/chdbits.py index ed2cf67..97cf766 100644 --- a/plugins/autosignin/sites/chdbits.py +++ b/plugins/autosignin/sites/chdbits.py @@ -3,7 +3,6 @@ import re from typing import Tuple from lxml import etree -from ruamel.yaml import CommentedMap from app.core.config import settings from app.log import logger @@ -36,7 +35,7 @@ class CHDBits(_ISiteSigninHandler): """ return True if StringUtils.url_equal(url, cls.site_url) else False - def signin(self, site_info: CommentedMap) -> Tuple[bool, str]: + def signin(self, site_info: dict) -> Tuple[bool, str]: """ 执行签到操作 :param site_info: 站点信息,含有站点Url、站点Cookie、UA等信息 diff --git a/plugins/autosignin/sites/haidan.py b/plugins/autosignin/sites/haidan.py index 23f6b03..2388fdb 100644 --- a/plugins/autosignin/sites/haidan.py +++ b/plugins/autosignin/sites/haidan.py @@ -1,7 +1,5 @@ from typing import Tuple -from ruamel.yaml import CommentedMap - from app.log import logger from app.plugins.autosignin.sites import _ISiteSigninHandler from app.utils.string import StringUtils @@ -26,7 +24,7 @@ class HaiDan(_ISiteSigninHandler): """ return True if StringUtils.url_equal(url, cls.site_url) else False - def signin(self, site_info: CommentedMap) -> Tuple[bool, str]: + def signin(self, site_info: dict) -> Tuple[bool, str]: """ 执行签到操作 :param site_info: 站点信息,含有站点Url、站点Cookie、UA等信息 diff --git a/plugins/autosignin/sites/hares.py b/plugins/autosignin/sites/hares.py index 5aea8f1..1e7f35e 100644 --- a/plugins/autosignin/sites/hares.py +++ b/plugins/autosignin/sites/hares.py @@ -1,8 +1,6 @@ import json from typing import Tuple -from ruamel.yaml import CommentedMap - from app.core.config import settings from app.log import logger from app.plugins.autosignin.sites import _ISiteSigninHandler @@ -29,7 +27,7 @@ class Hares(_ISiteSigninHandler): """ return True if StringUtils.url_equal(url, cls.site_url) else False - def signin(self, site_info: CommentedMap) -> Tuple[bool, str]: + def signin(self, site_info: dict) -> Tuple[bool, str]: """ 执行签到操作 :param site_info: 站点信息,含有站点Url、站点Cookie、UA等信息 diff --git a/plugins/autosignin/sites/hdarea.py b/plugins/autosignin/sites/hdarea.py index bc345e7..e892704 100644 --- a/plugins/autosignin/sites/hdarea.py +++ b/plugins/autosignin/sites/hdarea.py @@ -1,7 +1,5 @@ from typing import Tuple -from ruamel.yaml import CommentedMap - from app.core.config import settings from app.log import logger from app.plugins.autosignin.sites import _ISiteSigninHandler @@ -30,7 +28,7 @@ class HDArea(_ISiteSigninHandler): """ return True if StringUtils.url_equal(url, cls.site_url) else False - def signin(self, site_info: CommentedMap) -> Tuple[bool, str]: + def signin(self, site_info: dict) -> Tuple[bool, str]: """ 执行签到操作 :param site_info: 站点信息,含有站点Url、站点Cookie、UA等信息 diff --git a/plugins/autosignin/sites/hdchina.py b/plugins/autosignin/sites/hdchina.py index 1d14982..8ec24ca 100644 --- a/plugins/autosignin/sites/hdchina.py +++ b/plugins/autosignin/sites/hdchina.py @@ -2,7 +2,6 @@ import json from typing import Tuple from lxml import etree -from ruamel.yaml import CommentedMap from app.core.config import settings from app.log import logger @@ -30,7 +29,7 @@ class HDChina(_ISiteSigninHandler): """ return True if StringUtils.url_equal(url, cls.site_url) else False - def signin(self, site_info: CommentedMap) -> Tuple[bool, str]: + def signin(self, site_info: dict) -> Tuple[bool, str]: """ 执行签到操作 :param site_info: 站点信息,含有站点Url、站点Cookie、UA等信息 diff --git a/plugins/autosignin/sites/hdcity.py b/plugins/autosignin/sites/hdcity.py index 229a523..b3c3550 100644 --- a/plugins/autosignin/sites/hdcity.py +++ b/plugins/autosignin/sites/hdcity.py @@ -1,7 +1,5 @@ from typing import Tuple -from ruamel.yaml import CommentedMap - from app.log import logger from app.plugins.autosignin.sites import _ISiteSigninHandler from app.utils.string import StringUtils @@ -28,7 +26,7 @@ class HDCity(_ISiteSigninHandler): """ return True if StringUtils.url_equal(url, cls.site_url) else False - def signin(self, site_info: CommentedMap) -> Tuple[bool, str]: + def signin(self, site_info: dict) -> Tuple[bool, str]: """ 执行签到操作 :param site_info: 站点信息,含有站点Url、站点Cookie、UA等信息 diff --git a/plugins/autosignin/sites/hdsky.py b/plugins/autosignin/sites/hdsky.py index 0c3d844..6d5ac63 100644 --- a/plugins/autosignin/sites/hdsky.py +++ b/plugins/autosignin/sites/hdsky.py @@ -2,8 +2,6 @@ import json import time from typing import Tuple -from ruamel.yaml import CommentedMap - from app.core.config import settings from app.helper.ocr import OcrHelper from app.log import logger @@ -31,7 +29,7 @@ class HDSky(_ISiteSigninHandler): """ return True if StringUtils.url_equal(url, cls.site_url) else False - def signin(self, site_info: CommentedMap) -> Tuple[bool, str]: + def signin(self, site_info: dict) -> Tuple[bool, str]: """ 执行签到操作 :param site_info: 站点信息,含有站点Url、站点Cookie、UA等信息 diff --git a/plugins/autosignin/sites/hdupt.py b/plugins/autosignin/sites/hdupt.py index 470981d..f34e87f 100644 --- a/plugins/autosignin/sites/hdupt.py +++ b/plugins/autosignin/sites/hdupt.py @@ -1,8 +1,6 @@ import re from typing import Tuple -from ruamel.yaml import CommentedMap - from app.log import logger from app.plugins.autosignin.sites import _ISiteSigninHandler from app.utils.string import StringUtils @@ -30,7 +28,7 @@ class HDUpt(_ISiteSigninHandler): """ return True if StringUtils.url_equal(url, cls.site_url) else False - def signin(self, site_info: CommentedMap) -> Tuple[bool, str]: + def signin(self, site_info: dict) -> Tuple[bool, str]: """ 执行签到操作 :param site_info: 站点信息,含有站点Url、站点Cookie、UA等信息 diff --git a/plugins/autosignin/sites/mteam.py b/plugins/autosignin/sites/mteam.py index 5db1ef1..f54c86f 100644 --- a/plugins/autosignin/sites/mteam.py +++ b/plugins/autosignin/sites/mteam.py @@ -1,7 +1,4 @@ from typing import Tuple -from urllib.parse import urljoin - -from ruamel.yaml import CommentedMap from app.core.config import settings from app.plugins.autosignin.sites import _ISiteSigninHandler @@ -25,7 +22,7 @@ class MTorrent(_ISiteSigninHandler): """ return True if cls.site_url in url.split(".") else False - def signin(self, site_info: CommentedMap) -> Tuple[bool, str]: + def signin(self, site_info: dict) -> Tuple[bool, str]: """ 执行签到操作,馒头实际没有签到,非仿真模式下需要更新访问时间 :param site_info: 站点信息,含有站点Url、站点Cookie、UA等信息 @@ -52,7 +49,7 @@ class MTorrent(_ISiteSigninHandler): else: return False, "模拟登录失败,无法打开网站" - def login(self, site_info: CommentedMap) -> Tuple[bool, str]: + def login(self, site_info: dict) -> Tuple[bool, str]: """ 执行登录操作 :param site_info: 站点信息,含有站点Url、站点Cookie、UA等信息 diff --git a/plugins/autosignin/sites/nexushd.py b/plugins/autosignin/sites/nexushd.py index 78941c0..56bafb0 100644 --- a/plugins/autosignin/sites/nexushd.py +++ b/plugins/autosignin/sites/nexushd.py @@ -1,7 +1,5 @@ from typing import Tuple -from ruamel.yaml import CommentedMap - from app.core.config import settings from app.log import logger from app.plugins.autosignin.sites import _ISiteSigninHandler @@ -30,7 +28,7 @@ class NexusHD(_ISiteSigninHandler): """ return True if StringUtils.url_equal(url, cls.site_url) else False - def signin(self, site_info: CommentedMap) -> Tuple[bool, str]: + def signin(self, site_info: dict) -> Tuple[bool, str]: """ 执行签到操作 :param site_info: 站点信息,含有站点Url、站点Cookie、UA等信息 diff --git a/plugins/autosignin/sites/opencd.py b/plugins/autosignin/sites/opencd.py index 1f8d0c1..6ce165e 100644 --- a/plugins/autosignin/sites/opencd.py +++ b/plugins/autosignin/sites/opencd.py @@ -3,7 +3,6 @@ import time from typing import Tuple from lxml import etree -from ruamel.yaml import CommentedMap from app.core.config import settings from app.helper.ocr import OcrHelper @@ -32,7 +31,7 @@ class Opencd(_ISiteSigninHandler): """ return True if StringUtils.url_equal(url, cls.site_url) else False - def signin(self, site_info: CommentedMap) -> Tuple[bool, str]: + def signin(self, site_info: dict) -> Tuple[bool, str]: """ 执行签到操作 :param site_info: 站点信息,含有站点Url、站点Cookie、UA等信息 diff --git a/plugins/autosignin/sites/pterclub.py b/plugins/autosignin/sites/pterclub.py index 4047272..5d4a621 100644 --- a/plugins/autosignin/sites/pterclub.py +++ b/plugins/autosignin/sites/pterclub.py @@ -1,8 +1,6 @@ import json from typing import Tuple -from ruamel.yaml import CommentedMap - from app.log import logger from app.plugins.autosignin.sites import _ISiteSigninHandler from app.utils.string import StringUtils @@ -24,7 +22,7 @@ class PTerClub(_ISiteSigninHandler): """ return True if StringUtils.url_equal(url, cls.site_url) else False - def signin(self, site_info: CommentedMap) -> Tuple[bool, str]: + def signin(self, site_info: dict) -> Tuple[bool, str]: """ 执行签到操作 :param site_info: 站点信息,含有站点Url、站点Cookie、UA等信息 diff --git a/plugins/autosignin/sites/pttime.py b/plugins/autosignin/sites/pttime.py index 6c766d2..b4509c7 100644 --- a/plugins/autosignin/sites/pttime.py +++ b/plugins/autosignin/sites/pttime.py @@ -1,7 +1,5 @@ from typing import Tuple -from ruamel.yaml import CommentedMap - from app.log import logger from app.plugins.autosignin.sites import _ISiteSigninHandler from app.utils.string import StringUtils @@ -26,7 +24,7 @@ class PTTime(_ISiteSigninHandler): """ return True if StringUtils.url_equal(url, cls.site_url) else False - def signin(self, site_info: CommentedMap) -> Tuple[bool, str]: + def signin(self, site_info: dict) -> Tuple[bool, str]: """ 执行签到操作 :param site_info: 站点信息,含有站点Url、站点Cookie、UA等信息 diff --git a/plugins/autosignin/sites/tjupt.py b/plugins/autosignin/sites/tjupt.py index 4a20f84..594be4f 100644 --- a/plugins/autosignin/sites/tjupt.py +++ b/plugins/autosignin/sites/tjupt.py @@ -6,7 +6,6 @@ from typing import Tuple from PIL import Image from lxml import etree -from ruamel.yaml import CommentedMap from app.core.config import settings from app.log import logger @@ -46,7 +45,7 @@ class Tjupt(_ISiteSigninHandler): """ return True if StringUtils.url_equal(url, cls.site_url) else False - def signin(self, site_info: CommentedMap) -> Tuple[bool, str]: + def signin(self, site_info: dict) -> Tuple[bool, str]: """ 执行签到操作 :param site_info: 站点信息,含有站点Url、站点Cookie、UA等信息 diff --git a/plugins/autosignin/sites/ttg.py b/plugins/autosignin/sites/ttg.py index d3470a6..236c26a 100644 --- a/plugins/autosignin/sites/ttg.py +++ b/plugins/autosignin/sites/ttg.py @@ -1,8 +1,6 @@ import re from typing import Tuple -from ruamel.yaml import CommentedMap - from app.core.config import settings from app.log import logger from app.plugins.autosignin.sites import _ISiteSigninHandler @@ -33,7 +31,7 @@ class TTG(_ISiteSigninHandler): """ return True if StringUtils.url_equal(url, cls.site_url) else False - def signin(self, site_info: CommentedMap) -> Tuple[bool, str]: + def signin(self, site_info: dict) -> Tuple[bool, str]: """ 执行签到操作 :param site_info: 站点信息,含有站点Url、站点Cookie、UA等信息 diff --git a/plugins/autosignin/sites/u2.py b/plugins/autosignin/sites/u2.py index 2c45c2c..183897a 100644 --- a/plugins/autosignin/sites/u2.py +++ b/plugins/autosignin/sites/u2.py @@ -4,7 +4,6 @@ import re from typing import Tuple from lxml import etree -from ruamel.yaml import CommentedMap from app.core.config import settings from app.log import logger @@ -39,7 +38,7 @@ class U2(_ISiteSigninHandler): """ return True if StringUtils.url_equal(url, cls.site_url) else False - def signin(self, site_info: CommentedMap) -> Tuple[bool, str]: + def signin(self, site_info: dict) -> Tuple[bool, str]: """ 执行签到操作 :param site_info: 站点信息,含有站点Url、站点Cookie、UA等信息 diff --git a/plugins/autosignin/sites/yema.py b/plugins/autosignin/sites/yema.py index 879611f..6289946 100644 --- a/plugins/autosignin/sites/yema.py +++ b/plugins/autosignin/sites/yema.py @@ -1,8 +1,6 @@ from typing import Tuple from urllib.parse import urljoin -from ruamel.yaml import CommentedMap - from app.core.config import settings from app.plugins.autosignin.sites import _ISiteSigninHandler from app.utils.http import RequestUtils @@ -24,7 +22,7 @@ class YemaPT(_ISiteSigninHandler): """ return True if cls.site_url in url else False - def signin(self, site_info: CommentedMap) -> Tuple[bool, str]: + def signin(self, site_info: dict) -> Tuple[bool, str]: """ 执行签到操作 :param site_info: 站点信息,含有站点Url、站点Cookie、UA等信息 @@ -50,7 +48,7 @@ class YemaPT(_ISiteSigninHandler): else: return False, "签到失败,无法打开网站" - def login(self, site_info: CommentedMap) -> Tuple[bool, str]: + def login(self, site_info: dict) -> Tuple[bool, str]: """ 执行登录操作 :param site_info: 站点信息,含有站点Url、站点Cookie、UA等信息 diff --git a/plugins/autosignin/sites/zhuque.py b/plugins/autosignin/sites/zhuque.py index f3375f5..8ce2cc3 100644 --- a/plugins/autosignin/sites/zhuque.py +++ b/plugins/autosignin/sites/zhuque.py @@ -2,7 +2,6 @@ import json from typing import Tuple from lxml import etree -from ruamel.yaml import CommentedMap from app.core.config import settings from app.log import logger @@ -27,7 +26,7 @@ class ZhuQue(_ISiteSigninHandler): """ return True if StringUtils.url_equal(url, cls.site_url) else False - def signin(self, site_info: CommentedMap) -> Tuple[bool, str]: + def signin(self, site_info: dict) -> Tuple[bool, str]: """ 执行签到操作 :param site_info: 站点信息,含有站点Url、站点Cookie、UA等信息