From f8b1df80dece8127bb482e153a8d69c566c0fe9e Mon Sep 17 00:00:00 2001 From: Faker <admin@github.com> Date: Sun, 28 Jan 2024 22:16:56 +0800 Subject: [PATCH] Update jd_wskey.py --- jd_wskey.py | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/jd_wskey.py b/jd_wskey.py index 96dba78..f0a71ad 100644 --- a/jd_wskey.py +++ b/jd_wskey.py @@ -42,6 +42,7 @@ except Exception as err: ver = 31207 # 版本号 + def ttotp(key): key = base64.b32decode(key.upper() + '=' * ((8 - len(key)) % 8)) counter = struct.pack('>Q', int(time.time() / 30)) @@ -239,14 +240,20 @@ def check_ck(ck) -> bool: # 方法 检查 Cookie有效性 使用变量传递 'user-agent': ua } # 设置 HTTP头 try: - res = requests.get(url=url, headers=headers, verify=False, timeout=10, allow_redirects=False) # 进行 HTTP请求[GET] 超时 10秒 + res = requests.get(url=url, headers=headers, verify=False, timeout=10, + allow_redirects=False) # 进行 HTTP请求[GET] 超时 10秒 except Exception as err: logger.debug(str(err)) # 调试日志输出 logger.info("JD接口错误 请重试或者更换IP") # 标准日志输出 return False # 返回 Bool类型 False else: if res.status_code == 200: # 判断 JD_API 接口是否为 200 [HTTP_OK] - code = int(json.loads(res.text)['retcode']) # 使用 Json模块对返回数据取值 int([retcode]) + try: + code = int(json.loads(res.text)['retcode']) # 使用 Json模块对返回数据取值 int([retcode]) + except Exception as err: + logger.debug(str(err)) + logger.info("JD接口风控, 建议更换IP或增加间隔时间") + return False if code == 0: # 判断 code值 logger.info(str(pin) + ";状态正常\n") # 标准日志输出 return True # 返回 Bool类型 True @@ -268,7 +275,7 @@ def getToken(wskey): # 方法 获取 Wskey转换使用的 Token 由 JD_API 返 logger.info("Params参数获取失败") # 标准日志输出 logger.debug(str(err)) # 调试日志输出 # return False, wskey # 返回 -> False[Bool], Wskey - return False # 返回 -> False[Bool], Wskey + return False # 返回 -> False[Bool], Wskey headers = { 'cookie': wskey, 'content-type': 'application/x-www-form-urlencoded; charset=UTF-8', @@ -354,7 +361,6 @@ def update(): # 方法 脚本更新模块 logger.info("--------------------\n") # 标准日志输出 text = '当前脚本版本: {0}新版本: {1}, 请更新脚本~!'.format(ver, up_ver) # 设置发送内容 ql_send(text) - # sys.exit(0) # 退出脚本 [未启用] def ql_api(method, api, body=None) -> dict: @@ -378,6 +384,7 @@ def ql_api(method, api, body=None) -> dict: logger.info(f"\n青龙{api}接口多次重试仍然失败") sys.exit(1) + def ql_check(port) -> bool: # 方法 检查青龙端口 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # Socket模块初始化 sock.settimeout(2) # 设置端口超时 @@ -499,7 +506,8 @@ def cloud_info(): # 方法 云端信息 def check_cloud(): - url_list = ['aHR0cHM6Ly9hcGkubW9tb2UubGluay8=', 'aHR0cHM6Ly9hcGkubGltb2UuZXUub3JnLw==', 'aHR0cHM6Ly9hcGkuaWxpeWEuY2Yv'] + url_list = ['aHR0cHM6Ly9hcGkubW9tb2UubGluay8=', 'aHR0cHM6Ly9hcGkubGltb2UuZXUub3JnLw==', + 'aHR0cHM6Ly9hcGkuaWxpeWEuY2Yv'] for i in url_list: url = str(base64.b64decode(i).decode()) # 设置 url地址 [str] try: @@ -523,7 +531,8 @@ def check_port(): # 方法 检查变量传递端口 logger.info(str(port) + "端口检查通过") # 标准日志输出 return port # 返回->port else: - logger.info(str(port) + "端口检查失败, 如果改过端口, 请在变量中声明端口 \n在config.sh中加入 export QL_PORT=\"端口号\"") # 标准日志输出 + logger.info( + str(port) + "端口检查失败, 如果改过端口, 请在变量中声明端口 \n在config.sh中加入 export QL_PORT=\"端口号\"") # 标准日志输出 logger.info("\n如果你很确定端口没错, 还是无法执行, 在GitHub给我发issus\n--------------------\n") # 标准日志输出 sys.exit(1) # 脚本退出 @@ -540,8 +549,8 @@ if __name__ == '__main__': # Python主函数执行入口 ua = cloud_arg['User-Agent'] wslist = get_wskey() envlist = get_env() - sleepTime = int(os.environ.get("WSKEY_SLEEP","10") if str(os.environ.get("WSKEY_SLEEP")).isdigit() else "10") - tryCount = int(os.environ.get("WSKEY_TRY_COUNT","1") if str(os.environ.get("WSKEY_TRY_COUNT")).isdigit() else "1") + sleepTime = int(os.environ.get("WSKEY_SLEEP", "10") if str(os.environ.get("WSKEY_SLEEP")).isdigit() else "10") + tryCount = int(os.environ.get("WSKEY_TRY_COUNT", "1") if str(os.environ.get("WSKEY_TRY_COUNT")).isdigit() else "1") WSKEY_UPDATE_BOOL = bool(os.environ.get("WSKEY_UPDATE_HOUR")) WSKEY_AUTO_DISABLE = bool(os.environ.get("WSKEY_AUTO_DISABLE")) for ws in wslist: # wslist变量 for循环 [wslist -> ws]