fix(sites): PT时间签到失败 & PT时间魔力值统计

This commit is contained in:
DDSRem
2024-08-10 13:07:50 +08:00
parent fdc324011b
commit 7c9fb487fe
5 changed files with 71 additions and 5 deletions

View File

@@ -3,11 +3,12 @@
"name": "站点自动签到",
"description": "自动模拟登录、签到站点。",
"labels": "站点",
"version": "2.4.1",
"version": "2.4.2",
"icon": "signin.png",
"author": "thsrite",
"level": 2,
"history": {
"v2.4.2": "修复PT时间签到失败问题",
"v2.4.1": "修复海胆签到失败问题",
"v2.4": "适配m-team Api地址变化",
"v2.3.2": "修复YemaPT登录失败支持YemaPT自动签到",
@@ -32,11 +33,12 @@
"name": "站点数据统计",
"description": "自动统计和展示站点数据。",
"labels": "站点,仪表板",
"version": "4.0",
"version": "4.0.1",
"icon": "statistic.png",
"author": "lightolly",
"level": 2,
"history": {
"v4.0.1": "修复PTT的魔力值统计",
"v4.0": "修复插件数据页异常",
"v3.9.3": "修复PTT的用户等级统计",
"v3.9.2": "修复YemaPT的上传下载统计错误",

View File

@@ -38,7 +38,7 @@ class AutoSignIn(_PluginBase):
# 插件图标
plugin_icon = "signin.png"
# 插件版本
plugin_version = "2.4.1"
plugin_version = "2.4.2"
# 插件作者
plugin_author = "thsrite"
# 作者主页

View File

@@ -0,0 +1,64 @@
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
class PTTime(_ISiteSigninHandler):
"""
PT时间签到
"""
# 匹配的站点Url每一个实现类都需要设置为自己的站点Url
site_url = "pttime.org"
# 签到成功
_succeed_regex = ['签到成功']
@classmethod
def match(cls, url: str) -> bool:
"""
根据站点Url判断是否匹配当前站点签到类大部分情况使用默认实现即可
:param url: 站点Url
:return: 是否匹配如匹配则会调用该类的signin方法
"""
return True if StringUtils.url_equal(url, cls.site_url) else False
def signin(self, site_info: CommentedMap) -> Tuple[bool, str]:
"""
执行签到操作
:param site_info: 站点信息含有站点Url、站点Cookie、UA等信息
:return: 签到结果信息
"""
site = site_info.get("name")
site_cookie = site_info.get("cookie")
ua = site_info.get("ua")
proxy = site_info.get("proxy")
render = site_info.get("render")
# 签到
# 签到返回:<html><head></head><body>签到成功</body></html>
html_text = self.get_page_source(url='https://www.pttime.org/attendance.php',
cookie=site_cookie,
ua=ua,
proxy=proxy,
render=render)
if not html_text:
logger.error(f"{site} 签到失败,请检查站点连通性")
return False, '签到失败,请检查站点连通性'
if "login.php" in html_text:
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"{site} 签到成功")
return True, '签到成功'
logger.error(f"{site} 签到失败,签到接口返回 {html_text}")
return False, '签到失败'

View File

@@ -42,7 +42,7 @@ class SiteStatistic(_PluginBase):
# 插件图标
plugin_icon = "statistic.png"
# 插件版本
plugin_version = "4.0"
plugin_version = "4.0.1"
# 插件作者
plugin_author = "lightolly"
# 作者主页

View File

@@ -118,7 +118,7 @@ class NexusPhpSiteUserInfo(ISiteUserInfo):
if bonus_match and bonus_match.group(1).strip():
self.bonus = StringUtils.str_float(bonus_match.group(1))
return
bonus_match = re.search(r"mybonus.[\[\]:<>/a-zA-Z_\-=\"'\s#;.(使用魔力值豆]+\s*([\d,.]+)[<()&\s]", html_text)
bonus_match = re.search(r"mybonus.[\[\]:<>/a-zA-Z_\-=\"'\s#;.(使用&说明魔力值豆]+\s*([\d,.]+)[\[<()&\s]", html_text)
try:
if bonus_match and bonus_match.group(1).strip():
self.bonus = StringUtils.str_float(bonus_match.group(1))