add 下载历史记录

This commit is contained in:
jxxghp
2023-06-16 13:22:44 +08:00
parent 0ce6e652a0
commit 8948cb09a0
21 changed files with 233 additions and 190 deletions

View File

@ -45,14 +45,13 @@ class Pt52(_ISiteSigninHandler):
site_cookie = site_info.get("cookie")
ua = site_info.get("ua")
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
proxy = site_info.get("proxy")
# 判断今日是否已签到
html_text = self.get_page_source(url='https://52pt.site/bakatest.php',
cookie=site_cookie,
ua=ua,
proxies=proxy_server,
proxy=proxy,
render=render)
if not html_text:
@ -97,7 +96,7 @@ class Pt52(_ISiteSigninHandler):
choice=choice,
site_cookie=site_cookie,
ua=ua,
proxies=proxies,
proxy=proxy,
site=site)
def __signin(self, questionid: str,
@ -105,7 +104,7 @@ class Pt52(_ISiteSigninHandler):
site: str,
site_cookie: str,
ua: str,
proxies: dict) -> Tuple[bool, str]:
proxy: bool) -> Tuple[bool, str]:
"""
签到请求
questionid: 450
@ -125,7 +124,7 @@ class Pt52(_ISiteSigninHandler):
sign_res = RequestUtils(cookies=site_cookie,
ua=ua,
proxies=proxies
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"签到失败,签到接口请求失败")

View File

@ -6,6 +6,7 @@ from typing import Tuple
import chardet
from ruamel.yaml import CommentedMap
from app.core.config import settings
from app.helper.browser import PlaywrightHelper
from app.log import logger
from app.utils.http import RequestUtils
@ -39,13 +40,13 @@ class _ISiteSigninHandler(metaclass=ABCMeta):
pass
@staticmethod
def get_page_source(url: str, cookie: str, ua: str, proxies: dict, render: bool) -> str:
def get_page_source(url: str, cookie: str, ua: str, proxy: bool, render: bool) -> str:
"""
获取页面源码
:param url: Url地址
:param cookie: Cookie
:param ua: UA
:param proxies: 代理
:param proxy: 是否使用代理
:param render: 是否渲染
:return: 页面源码,错误信息
"""
@ -53,11 +54,11 @@ class _ISiteSigninHandler(metaclass=ABCMeta):
return PlaywrightHelper().get_page_source(url=url,
cookies=cookie,
ua=ua,
proxies=proxies)
proxies=settings.PROXY_SERVER if proxy else None)
else:
res = RequestUtils(cookies=cookie,
ua=ua,
proxies=proxies
proxies=settings.PROXY if proxy else None
).get_res(url=url)
if res is not None:
# 使用chardet检测字符编码

View File

@ -37,16 +37,14 @@ class BTSchool(_ISiteSigninHandler):
site_cookie = site_info.get("cookie")
ua = site_info.get("ua")
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
proxy_server = settings.PROXY_SERVER if site_info.get("proxy") else None
proxy = site_info.get("proxy")
logger.info(f"{site} 开始签到")
# 判断今日是否已签到
html_text = self.get_page_source(url='https://pt.btschool.club',
cookie=site_cookie,
ua=ua,
proxies=proxy_server,
proxy=proxy,
render=render)
if not html_text:
@ -65,7 +63,7 @@ class BTSchool(_ISiteSigninHandler):
html_text = self.get_page_source(url='https://pt.btschool.club/index.php?action=addbonus',
cookie=site_cookie,
ua=ua,
proxies=proxy_server,
proxy=proxy,
render=render)
if not html_text:

View File

@ -45,15 +45,14 @@ class CHDBits(_ISiteSigninHandler):
site = site_info.get("name")
site_cookie = site_info.get("cookie")
ua = site_info.get("ua")
proxies = settings.PROXY if site_info.get("proxy") else None
proxy_server = settings.PROXY_SERVER if site_info.get("proxy") else None
proxy = site_info.get("proxy")
render = site_info.get("render")
# 判断今日是否已签到
html_text = self.get_page_source(url='https://chdbits.co/bakatest.php',
cookie=site_cookie,
ua=ua,
proxies=proxy_server,
proxy=proxy,
render=render)
if not html_text:
@ -98,7 +97,7 @@ class CHDBits(_ISiteSigninHandler):
choice=choice,
site_cookie=site_cookie,
ua=ua,
proxies=proxies,
proxy=proxy,
site=site)
def __signin(self, questionid: str,
@ -106,7 +105,7 @@ class CHDBits(_ISiteSigninHandler):
site: str,
site_cookie: str,
ua: str,
proxies: dict) -> Tuple[bool, str]:
proxy: bool) -> Tuple[bool, str]:
"""
签到请求
questionid: 450
@ -126,7 +125,7 @@ class CHDBits(_ISiteSigninHandler):
sign_res = RequestUtils(cookies=site_cookie,
ua=ua,
proxies=proxies
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"签到失败,签到接口请求失败")

View File

@ -36,15 +36,14 @@ class HaiDan(_ISiteSigninHandler):
site = site_info.get("name")
site_cookie = site_info.get("cookie")
ua = site_info.get("ua")
proxies = settings.PROXY if site_info.get("proxy") else None
proxy_server = settings.PROXY_SERVER if site_info.get("proxy") else None
proxy = site_info.get("proxy")
render = site_info.get("render")
# 签到
html_text = self.get_page_source(url='https://www.haidan.video/signin.php',
cookie=site_cookie,
ua=ua,
proxies=proxy_server,
proxy=proxy,
render=render)
if not html_text:
logger.error(f"签到失败,请检查站点连通性")

View File

@ -38,15 +38,14 @@ class Hares(_ISiteSigninHandler):
site = site_info.get("name")
site_cookie = site_info.get("cookie")
ua = site_info.get("ua")
proxies = settings.PROXY if site_info.get("proxy") else None
proxy_server = settings.PROXY_SERVER if site_info.get("proxy") else None
proxy = site_info.get("proxy")
render = site_info.get("render")
# 获取页面html
html_text = self.get_page_source(url='https://club.hares.top',
cookie=site_cookie,
ua=ua,
proxies=proxy_server,
proxy=proxy,
render=render)
if not html_text:
@ -67,7 +66,7 @@ class Hares(_ISiteSigninHandler):
}
sign_res = RequestUtils(cookies=site_cookie,
headers=headers,
proxies=proxies
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"签到失败,签到接口请求失败")

View File

@ -38,15 +38,14 @@ class HDCity(_ISiteSigninHandler):
site = site_info.get("name")
site_cookie = site_info.get("cookie")
ua = site_info.get("ua")
proxies = settings.PROXY if site_info.get("proxy") else None
proxy_server = settings.PROXY_SERVER if site_info.get("proxy") else None
proxy = site_info.get("proxy")
render = site_info.get("render")
# 获取页面html
html_text = self.get_page_source(url='https://hdcity.city/sign',
cookie=site_cookie,
ua=ua,
proxies=proxy_server,
proxy=proxy,
render=render)
if not html_text:
logger.error(f"签到失败,请检查站点连通性")

View File

@ -40,15 +40,14 @@ class HDSky(_ISiteSigninHandler):
site = site_info.get("name")
site_cookie = site_info.get("cookie")
ua = site_info.get("ua")
proxies = settings.PROXY if site_info.get("proxy") else None
proxy_server = settings.PROXY_SERVER if site_info.get("proxy") else None
proxy = site_info.get("proxy")
render = site_info.get("render")
# 判断今日是否已签到
html_text = self.get_page_source(url='https://hdsky.me',
cookie=site_cookie,
ua=ua,
proxies=proxy_server,
proxy=proxy,
render=render)
if not html_text:
logger.error(f"签到失败,请检查站点连通性")
@ -70,7 +69,7 @@ class HDSky(_ISiteSigninHandler):
while not img_hash and res_times <= 3:
image_res = RequestUtils(cookies=site_cookie,
headers=ua,
proxies=proxies
proxies=settings.PROXY if proxy else None
).post_res(url='https://hdsky.me/image_code_ajax.php',
data={'action': 'new'})
if image_res and image_res.status_code == 200:
@ -115,7 +114,7 @@ class HDSky(_ISiteSigninHandler):
# 访问签到链接
res = RequestUtils(cookies=site_cookie,
headers=ua,
proxies=proxies
proxies=settings.PROXY if proxy else None
).post_res(url='https://hdsky.me/showup.php', data=data)
if res and res.status_code == 200:
if json.loads(res.text)["success"]:

View File

@ -40,15 +40,14 @@ class HDUpt(_ISiteSigninHandler):
site = site_info.get("name")
site_cookie = site_info.get("cookie")
ua = site_info.get("ua")
proxies = settings.PROXY if site_info.get("proxy") else None
proxy_server = settings.PROXY_SERVER if site_info.get("proxy") else None
proxy = site_info.get("proxy")
render = site_info.get("render")
# 获取页面html
html_text = self.get_page_source(url='https://pt.hdupt.com',
cookie=site_cookie,
ua=ua,
proxies=proxy_server,
proxy=proxy,
render=render)
if not html_text:
logger.error(f"签到失败,请检查站点连通性")
@ -68,7 +67,7 @@ class HDUpt(_ISiteSigninHandler):
html_text = self.get_page_source(url='https://pt.hdupt.com/added.php?action=qiandao',
cookie=site_cookie,
ua=ua,
proxies=proxy_server,
proxy=proxy,
render=render)
if not html_text:
logger.error(f"签到失败,请检查站点连通性")

View File

@ -41,15 +41,14 @@ class Opencd(_ISiteSigninHandler):
site = site_info.get("name")
site_cookie = site_info.get("cookie")
ua = site_info.get("ua")
proxies = settings.PROXY if site_info.get("proxy") else None
proxy_server = settings.PROXY_SERVER if site_info.get("proxy") else None
proxy = site_info.get("proxy")
render = site_info.get("render")
# 判断今日是否已签到
html_text = self.get_page_source(url='https://www.open.cd',
cookie=site_cookie,
ua=ua,
proxies=proxy_server,
proxy=proxy,
render=render)
if not html_text:
logger.error(f"签到失败,请检查站点连通性")
@ -67,7 +66,7 @@ class Opencd(_ISiteSigninHandler):
html_text = self.get_page_source(url='https://www.open.cd/plugin_sign-in.php',
cookie=site_cookie,
ua=ua,
proxies=proxy_server,
proxy=proxy,
render=render)
if not html_text:
logger.error(f"签到失败,请检查站点连通性")
@ -116,7 +115,7 @@ class Opencd(_ISiteSigninHandler):
# 访问签到链接
sign_res = RequestUtils(cookies=site_cookie,
headers=ua,
proxies=proxies
proxies=settings.PROXY if proxy else None
).post_res(url='https://www.open.cd/plugin_sign-in.php?cmd=signin', data=data)
if sign_res and sign_res.status_code == 200:
logger.debug(f"sign_res返回 {sign_res.text}")

View File

@ -34,15 +34,14 @@ class PTerClub(_ISiteSigninHandler):
site = site_info.get("name")
site_cookie = site_info.get("cookie")
ua = site_info.get("ua")
proxies = settings.PROXY if site_info.get("proxy") else None
proxy_server = settings.PROXY_SERVER if site_info.get("proxy") else None
proxy = site_info.get("proxy")
render = site_info.get("render")
# 签到
html_text = self.get_page_source(url='https://pterclub.com/attendance-ajax.php',
cookie=site_cookie,
ua=ua,
proxies=proxy_server,
proxy=proxy,
render=render)
if not html_text:
logger.error(f"签到失败,签到接口请求失败")

View File

@ -55,8 +55,7 @@ class Tjupt(_ISiteSigninHandler):
site = site_info.get("name")
site_cookie = site_info.get("cookie")
ua = site_info.get("ua")
proxies = settings.PROXY if site_info.get("proxy") else None
proxy_server = settings.PROXY_SERVER if site_info.get("proxy") else None
proxy = site_info.get("proxy")
render = site_info.get("render")
# 创建正确答案存储目录
@ -67,7 +66,7 @@ class Tjupt(_ISiteSigninHandler):
html_text = self.get_page_source(url=self._sign_in_url,
cookie=site_cookie,
ua=ua,
proxies=proxy_server,
proxy=proxy,
render=render)
# 获取签到后返回html判断是否签到成功
@ -101,7 +100,7 @@ class Tjupt(_ISiteSigninHandler):
# 获取签到图片hash
captcha_img_res = RequestUtils(cookies=site_cookie,
headers=ua,
proxies=proxies
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} 请求失败")
@ -139,7 +138,7 @@ class Tjupt(_ISiteSigninHandler):
return self.__signin(answer=value,
site_cookie=site_cookie,
ua=ua,
proxies=proxies,
proxy=proxy,
site=site)
except (FileNotFoundError, IOError, OSError) as e:
logger.debug(f"查询本地已知答案失败:{e},继续请求豆瓣查询")
@ -182,7 +181,7 @@ class Tjupt(_ISiteSigninHandler):
return self.__signin(answer=value,
site_cookie=site_cookie,
ua=ua,
proxies=proxies,
proxy=proxy,
site=site,
exits_answers=exits_answers,
captcha_img_hash=captcha_img_hash)
@ -194,7 +193,7 @@ class Tjupt(_ISiteSigninHandler):
# 没有匹配签到成功,则签到失败
return False, f'{site}】签到失败,未获取到匹配答案'
def __signin(self, answer, site_cookie, ua, proxies, site, exits_answers=None, captcha_img_hash=None):
def __signin(self, answer, site_cookie, ua, proxy, site, exits_answers=None, captcha_img_hash=None):
"""
签到请求
"""
@ -205,7 +204,7 @@ class Tjupt(_ISiteSigninHandler):
logger.debug(f"提交data {data}")
sign_in_res = RequestUtils(cookies=site_cookie,
headers=ua,
proxies=proxies
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"签到失败,签到接口请求失败")

View File

@ -42,15 +42,14 @@ class TTG(_ISiteSigninHandler):
site = site_info.get("name")
site_cookie = site_info.get("cookie")
ua = site_info.get("ua")
proxies = settings.PROXY if site_info.get("proxy") else None
proxy_server = settings.PROXY_SERVER if site_info.get("proxy") else None
proxy = site_info.get("proxy")
render = site_info.get("render")
# 获取页面html
html_text = self.get_page_source(url="https://totheglory.im",
cookie=site_cookie,
ua=ua,
proxies=proxy_server,
proxy=proxy,
render=render)
if not html_text:
logger.error(f"签到失败,请检查站点连通性")
@ -79,7 +78,7 @@ class TTG(_ISiteSigninHandler):
# 签到
sign_res = RequestUtils(cookies=site_cookie,
headers=ua,
proxies=proxies
proxies=settings.PROXY if proxy else None
).post_res(url="https://totheglory.im/signed.php",
data=data)
if not sign_res or sign_res.status_code != 200:

View File

@ -48,8 +48,7 @@ class U2(_ISiteSigninHandler):
site = site_info.get("name")
site_cookie = site_info.get("cookie")
ua = site_info.get("ua")
proxies = settings.PROXY if site_info.get("proxy") else None
proxy_server = settings.PROXY_SERVER if site_info.get("proxy") else None
proxy = site_info.get("proxy")
render = site_info.get("render")
now = datetime.datetime.now()
@ -62,7 +61,7 @@ class U2(_ISiteSigninHandler):
html_text = self.get_page_source(url="https://u2.dmhy.org/showup.php",
cookie=site_cookie,
ua=ua,
proxies=proxy_server,
proxy=proxy,
render=render)
if not html_text:
logger.error(f"签到失败,请检查站点连通性")
@ -107,7 +106,7 @@ class U2(_ISiteSigninHandler):
# 签到
sign_res = RequestUtils(cookies=site_cookie,
headers=ua,
proxies=proxies
proxies=settings.PROXY if proxy else None
).post_res(url="https://u2.dmhy.org/showup.php?action=show",
data=data)
if not sign_res or sign_res.status_code != 200:

View File

@ -36,15 +36,14 @@ class ZhuQue(_ISiteSigninHandler):
site = site_info.get("name")
site_cookie = site_info.get("cookie")
ua = site_info.get("ua")
proxies = settings.PROXY if site_info.get("proxy") else None
proxy_server = settings.PROXY_SERVER if site_info.get("proxy") else None
proxy = site_info.get("proxy")
render = site_info.get("render")
# 获取页面html
html_text = self.get_page_source(url="https://zhuque.in",
cookie=site_cookie,
ua=ua,
proxies=proxy_server,
proxy=proxy,
render=render)
if not html_text:
logger.error(f"模拟登录失败,请检查站点连通性")
@ -74,7 +73,7 @@ class ZhuQue(_ISiteSigninHandler):
}
skill_res = RequestUtils(cookies=site_cookie,
headers=headers,
proxies=proxies
proxies=settings.PROXY if proxy else None
).post_res(url="https://zhuque.in/api/gaming/fireGenshinCharacterMagic", json=data)
if not skill_res or skill_res.status_code != 200:
logger.error(f"模拟登录失败,释放技能失败")