From 3c41fed0ef193ffb785d6b62027aaac9e008789a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=99=AF=E5=A4=A7=E4=BE=A0?= Date: Sun, 12 Jan 2025 20:14:17 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E9=A6=92=E5=A4=B4=E8=BF=9E=E9=80=9A?= =?UTF-8?q?=E6=80=A7=E6=B5=8B=E8=AF=95=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/chain/site.py | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/app/chain/site.py b/app/chain/site.py index 6047fd84..c4e0c813 100644 --- a/app/chain/site.py +++ b/app/chain/site.py @@ -1,6 +1,7 @@ import base64 import re from datetime import datetime +from time import time from typing import Optional, Tuple, Union, Dict from urllib.parse import urljoin @@ -172,27 +173,37 @@ class SiteChain(ChainBase): "Content-Type": "application/json", "User-Agent": user_agent, "Accept": "application/json, text/plain, */*", - "Authorization": site.token + "Authorization": site.token, + "x-api-key": site.apikey, + "ts": str(int(time())) } res = RequestUtils( headers=headers, proxies=settings.PROXY if site.proxy else None, timeout=site.timeout or 15 ).post_res(url=url) + state = False + message = "鉴权已过期或无效" if res and res.status_code == 200: - user_info = res.json() - if user_info and user_info.get("data"): + user_info = res.json() or {} + if user_info.get("data"): # 更新最后访问时间 + del headers["x-api-key"] res = RequestUtils(headers=headers, timeout=site.timeout or 15, proxies=settings.PROXY if site.proxy else None, referer=f"{site.url}index" ).post_res(url=f"https://api.{domain}/api/member/updateLastBrowse") - if res: - return True, "连接成功" - else: - return True, f"连接成功,但更新状态失败" - return False, "鉴权已过期或无效" + state = True + message = "连接成功,但更新状态失败" + if res and res.status_code == 200: + update_info = res.json() or {} + if "code" in update_info and int(update_info["code"]) == 0: + message = "连接成功" + elif user_info.get("message"): + # 使用馒头的错误提示 + message = user_info.get("message") + return state, message @staticmethod def __yema_test(site: Site) -> Tuple[bool, str]: