diff --git a/plugins/jd_sign_token/main.py b/plugins/jd_sign_token/main.py index 50455f4..1a49ff3 100644 --- a/plugins/jd_sign_token/main.py +++ b/plugins/jd_sign_token/main.py @@ -271,32 +271,46 @@ class JDTokenPlugin(MessagePluginInterface): envs = self.ql.getEnvs() if not envs: return f"❌ 获取环境变量失败" + + # 从当前token中提取pt_pin + pt_pin_match = re.search(r'pt_pin=([^;]*)', token) + if not pt_pin_match: + return f"❌ 无法从Token中提取pt_pin信息" + + current_pt_pin = pt_pin_match.group(1) + self.LOG.info(f"当前Token的pt_pin: {current_pt_pin}") - # 查找是否有相同备注的JD_COOKIE + # 查找是否有相同pt_pin的JD_COOKIE existing_env = None env_id = None for env in envs: - if env.get('name') == 'JD_COOKIE' and env.get('remarks') == remark: - existing_env = env - env_id = env.get('id') - break + if env.get('name') == 'JD_COOKIE': + # 从已存在的环境变量中提取pt_pin + env_pt_pin_match = re.search(r'pt_pin=([^;]*)', env.get('value', '')) + if env_pt_pin_match and env_pt_pin_match.group(1) == current_pt_pin: + existing_env = env + env_id = env.get('id') + break result = False self.LOG.debug(f"existing_env: {existing_env}") if existing_env: - # 更新已存在的环境变量 + # 更新已存在的环境变量,保留原有的备注或使用新的备注 + existing_remarks = existing_env.get('remarks', '') + final_remarks = remark if remark else existing_remarks + existing_env['value'] = token - env_update: dict = {"id": env_id, "value": token, "remarks": remark,"name": "JD_COOKIE"} + env_update: dict = {"id": env_id, "value": token, "remarks": final_remarks, "name": "JD_COOKIE"} result = self.ql.updateEnv(env_update) if result: - return f"✅ 已成功更新京东账号 [{remark}] 的Token" + return f"✅ 已成功更新京东账号 [{final_remarks}] 的Token (pt_pin: {current_pt_pin})" else: - return f"❌ 更新京东账号 [{remark}] 的Token失败" + return f"❌ 更新京东账号 [{final_remarks}] 的Token失败" else: # 添加新的环境变量 new_env = [{"name": "JD_COOKIE", "value": token, "remarks": remark}] result = self.ql.addEnvs(new_env) if result: - return f"✅ 已成功添加京东账号 [{remark}] 的Token" + return f"✅ 已成功添加京东账号 [{remark}] 的Token (pt_pin: {current_pt_pin})" else: return f"❌ 添加京东账号 [{remark}] 的Token失败"