From 5383b771df9d5d202421e0d93080ec17026e98af Mon Sep 17 00:00:00 2001 From: John Connor Date: Sun, 26 May 2024 13:46:51 +0800 Subject: [PATCH] =?UTF-8?q?[fix]=20=E4=BF=AE=E5=A4=8D=20YemaPT=20=E6=A8=A1?= =?UTF-8?q?=E6=8B=9F=E7=99=BB=E5=BD=95=E3=80=81=E6=94=AF=E6=8C=81YemaPT=20?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E7=AD=BE=E5=88=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 3 +- plugins/autosignin/__init__.py | 2 +- plugins/autosignin/sites/yema.py | 48 ++++++++++++++++++++++---------- 3 files changed, 37 insertions(+), 16 deletions(-) diff --git a/package.json b/package.json index 9318e3d..163f0f7 100644 --- a/package.json +++ b/package.json @@ -3,11 +3,12 @@ "name": "站点自动签到", "description": "自动模拟登录、签到站点。", "labels": "站点", - "version": "2.3.1", + "version": "2.3.2", "icon": "signin.png", "author": "thsrite", "level": 2, "history": { + "v2.3.2": "修复YemaPT登录失败,支持YemaPT自动签到", "v2.3.1": "修复签到报错问题", "v2.3": "优化模拟登录逻辑,支持YemaPT模拟登录", "v2.2": "适配馒头最新变化,需要升级至v1.8.5+版本且维护好Authorization", diff --git a/plugins/autosignin/__init__.py b/plugins/autosignin/__init__.py index eb6f09b..6c3a439 100644 --- a/plugins/autosignin/__init__.py +++ b/plugins/autosignin/__init__.py @@ -38,7 +38,7 @@ class AutoSignIn(_PluginBase): # 插件图标 plugin_icon = "signin.png" # 插件版本 - plugin_version = "2.3.1" + plugin_version = "2.3.2" # 插件作者 plugin_author = "thsrite" # 作者主页 diff --git a/plugins/autosignin/sites/yema.py b/plugins/autosignin/sites/yema.py index dc62cc9..879611f 100644 --- a/plugins/autosignin/sites/yema.py +++ b/plugins/autosignin/sites/yema.py @@ -8,9 +8,9 @@ from app.plugins.autosignin.sites import _ISiteSigninHandler from app.utils.http import RequestUtils -class MTorrent(_ISiteSigninHandler): +class YemaPT(_ISiteSigninHandler): """ - m-team签到 + YemaPT 签到 """ # 匹配的站点Url,每一个实现类都需要设置为自己的站点Url site_url = "yemapt.org" @@ -26,7 +26,7 @@ class MTorrent(_ISiteSigninHandler): def signin(self, site_info: CommentedMap) -> Tuple[bool, str]: """ - 执行签到操作,馒头实际没有签到,非仿真模式下需要更新访问时间 + 执行签到操作 :param site_info: 站点信息,含有站点Url、站点Cookie、UA等信息 :return: 签到结果信息 """ @@ -35,19 +35,20 @@ class MTorrent(_ISiteSigninHandler): "User-Agent": site_info.get("ua"), "Accept": "application/json, text/plain, */*", } - # 更新最后访问时间 - res = RequestUtils(headers=headers, - timeout=15, - cookies=site_info.get("cookie"), - proxies=settings.PROXY if site_info.get("proxy") else None, - referer=site_info.get('url') - ).post_res(url=urljoin(site_info.get('url'), "api/user/profile")) + # 获取用户信息,更新最后访问时间 + res = (RequestUtils(headers=headers, + timeout=15, + cookies=site_info.get("cookie"), + proxies=settings.PROXY if site_info.get("proxy") else None, + referer=site_info.get('url') + ).get_res(urljoin(site_info.get('url'), "api/consumer/checkIn"))) + if res and res.json().get("success"): - return True, "模拟登录成功" + return True, "签到成功" elif res is not None: - return False, f"模拟登录失败,状态码:{res.status_code}" + return False, f"签到失败,签到结果:{res.json().get('errorMessage')}" else: - return False, "模拟登录失败,无法打开网站" + return False, "签到失败,无法打开网站" def login(self, site_info: CommentedMap) -> Tuple[bool, str]: """ @@ -55,4 +56,23 @@ class MTorrent(_ISiteSigninHandler): :param site_info: 站点信息,含有站点Url、站点Cookie、UA等信息 :return: 登录结果信息 """ - return self.signin(site_info) + + headers = { + "Content-Type": "application/json", + "User-Agent": site_info.get("ua"), + "Accept": "application/json, text/plain, */*", + } + # 获取用户信息,更新最后访问时间 + res = (RequestUtils(headers=headers, + timeout=15, + cookies=site_info.get("cookie"), + proxies=settings.PROXY if site_info.get("proxy") else None, + referer=site_info.get('url') + ).get_res(urljoin(site_info.get('url'), "api/user/profile"))) + + if res and res.json().get("success"): + return True, "模拟登录成功" + elif res is not None: + return False, f"模拟登录失败,状态码:{res.status_code}" + else: + return False, "模拟登录失败,无法打开网站"