WWW.YOUINFO.SITE
标签聚合 xxxxx

/tag/xxxxx

LinuxDo 最新话题 · 2026-06-07 22:57:41+08:00 · tech

CPA 配置如下 openai-compatibility: - name: xxxx priority: 10 base-url: xxxxx/v1 api-key-entries: - api-key: xxxxx models: - name: gpt-5.5 alias: "" thinking: levels: ["low", "medium", "high", "xhigh"] 已经按照 自定义供应商 中转站 提示不支持 xhigh · router-for-me/CLIProxyAPI · Discussion #2564 设置,但在 codex 中 /model 选择 gpt-5.5 xhigh 时报错:provider=openai model=gpt-5.5 error=level “xhigh” not supported, valid levels: low, medium, high 2 个帖子 - 2 位参与者 阅读完整话题

linux.do · 2026-04-27 09:50:08+08:00 · tech

/** 可口可乐吧 签到 - 青龙多账号版 环境变量: WXID: 备注#wxid,多账号用 & 或 换行 分隔 示例: 账号1#wxid_xxxxxxxx&账号2#wxid_yyyyyyyy 功能: 微信 code → Bearer token(带缓存) 查询签到状态 执行每日签到 查询积分 cron: 30 8 * * * const: disabled = false */ const axios = require(‘axios’); const fs = require(‘fs’); const path = require(‘path’); /* ==================== 常量配置 ==================== */ const APPID = ‘wxa5811e0426a94686’; const BASE_URL = ‘ https://member-api.icoke.cn ’; const UA = ‘Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.59(0x18003b2e) NetType/4G Language/zh_CN’; const REFERER = https://servicewechat.com/${APPID}/499/page-frame.html ; const SCRIPT_DIR = path.dirname(__filename); const CACHE_FILE = path.join(SCRIPT_DIR, ‘可口可乐签到_cache.txt’); /* ==================== 环境变量 ==================== */ const WECHAT_SERVER = process.env.WECHAT_SERVER; const WXID_ENV = process.env.WXID; if (!WECHAT_SERVER || !WXID_ENV) { console.log(‘ 请设置 WECHAT_SERVER 和 WXID 环境变量’); process.exit(1); } const wxidList = WXID_ENV.split(/[\n&]/).map(i => i.trim()).filter(i => i && i.includes(‘#’)); if (!wxidList.length) { console.log(‘ WXID 格式错误,请使用 备注#wxid 格式’); process.exit(1); } /* ==================== 缓存管理 ==================== */ function loadTokenCache() { const cacheMap = {}; try { if (fs.existsSync(CACHE_FILE)) { fs.readFileSync(CACHE_FILE, ‘utf8’).split(/\n/).filter(Boolean).forEach(line => { const idx = line.indexOf(‘#’); if (idx > 0) { const remark = line.substring(0, idx); const token = line.substring(idx + 1); cacheMap[remark] = token; } }); } } catch (e) {} return cacheMap; } function saveTokenCache(cacheMap) { try { const content = Object.entries(cacheMap).map(([r, t]) => ${r}#${t} ).join(‘\n’); fs.writeFileSync(CACHE_FILE, content || ‘ #cache ’, { encoding: ‘utf8’, flag: ‘w’ }); } catch (e) {} } /* ==================== 微信 code 换 token ==================== */ async function getCode(wxid) { try { const url = ${WECHAT_SERVER}/api/v1/wx/app/get/code ; const res = await axios.post(url, { wxid, appid: APPID }, { timeout: 10000 }); const code = res.data?.Data?.code; if (!code) { console.log(‘ getCode 响应:’, JSON.stringify(res.data)); return null; } return code; } catch (e) { console.log(‘ getCode 异常:’, e.message); return null; } } async function codeToToken(code) { try { const url = ${BASE_URL}/api/sp-portal/store/icoke/wechat/loginNoCache/${code} ; const headers = { ‘Host’: ‘ member-api.icoke.cn ’, ‘content-type’: ‘application/json’, ‘Accept’: ‘application/json, text/plain, / ’, ‘Accept-Encoding’: ‘gzip,compress,br,deflate’, ‘User-Agent’: UA, ‘Referer’: REFERER, }; const res = await axios.get(url, { headers, timeout: 10000 }); const body = res.data; // 实际抓包确认:token 在响应体的 jwtString 字段 if (body && body.jwtString) { return body.jwtString; } console.log(‘ codeToToken 响应:’, JSON.stringify(body).substring(0, 300)); return null; } catch (e) { console.log(‘ codeToToken 异常:’, e.message); return null; } } async function getValidToken(remark, wxid, force = false) { const m = loadTokenCache(); if (force) delete m[remark]; if (m[remark]) { console.log(‘ 使用缓存 token’); return m[remark]; } console.log(‘ 获取微信 code…’); const code = await getCode(wxid); if (!code) return null; console.log( ✅ code: ${code.substring(0, 10)}... ); const token = await codeToToken(code); if (!token) return null; m[remark] = token; saveTokenCache(m); console.log(‘ token 已缓存’); return token; } /* ==================== 判断 token 失效 ==================== */ function isTokenInvalid(data) { if (!data) return false; const msg = (data.message || data.msg || ‘’).toLowerCase(); return msg.includes(‘未登录’) || msg.includes(‘token’) || msg.includes(‘登录’) || data.code === ‘401’ || data.code === 401 || data.status === 401 || data.httpStatus === 401; } /* ==================== 公共请求头 ==================== */ function getHeaders(token) { return { ‘Host’: ‘ member-api.icoke.cn ’, ‘Authorization’: token, ‘content-type’: ‘application/json’, ‘Accept’: ‘application/json, text/plain, / ’, ‘Accept-Encoding’: ‘gzip,compress,br,deflate’, ‘User-Agent’: UA, ‘Referer’: REFERER, }; } /* ==================== API 请求封装 ==================== */ async function apiGet(path, token, params) { try { const res = await axios.get( ${BASE_URL}${path} , { headers: getHeaders(token), params, timeout: 15000, }); return res.data; } catch (e) { console.log( ❌ GET ${path} 异常: , e.message); return null; } } async function apiPost(path, token, data) { try { const res = await axios.post( ${BASE_URL}${path} , data, { headers: getHeaders(token), timeout: 15000, }); return res.data; } catch (e) { console.log( ❌ POST ${path} 异常: , e.message); return null; } } /* ==================== 业务接口 ==================== */ async function getSignOutline(token) { const res = await apiGet(‘/api/icoke-sign/icoke/mini/sign/main/getSignOutline’, token); if (!res) return null; if (isTokenInvalid(res)) return { needRefresh: true }; const today = new Date(); const y = today.getFullYear(), m = today.getMonth() + 1, d = today.getDate(); const list = res.data || ; const todayRecord = list.find(r => r.year === y && r.month === m && r.day === d); return { signed: !!(todayRecord && todayRecord.exist), totalDays: list.filter(r => r.exist).length, point: todayRecord?.point || 0, data: list, raw: res, }; } async function doSign(token) { const res = await apiGet(‘/api/icoke-sign/icoke/mini/sign/main/sign’, token); if (!res) return { success: false, msg: ‘请求失败’ }; if (isTokenInvalid(res)) return { needRefresh: true }; if (res.success === true || res.isSuccess === true) { return { success: true, point: res.point || 0, msg: res.message || ‘签到成功’, }; } const msg = res.message || res.msg || JSON.stringify(res); if (msg.includes(‘已签’) || msg.includes(‘重复’) || msg.includes(‘already’)) { return { success: false, alreadySigned: true, msg }; } return { success: false, msg }; } /** 查询积分 */ async function getPoints(token) { const res = await apiGet(‘/api/icoke-customer/icoke/mini/customer/main/points’, token); if (!res) return null; return { point: res.point || 0, experiencePoints: res.experiencePoints || 0, frozenPoint: res.frozenPoint || 0, }; } /** 查询用户基本信息 */ async function getUserInfo(token) { const res = await apiGet(‘/api/icoke-customer/icoke/mini/customer/main/base/info’, token); if (!res) return null; return { name: res.name || ‘未知’, mobile: res.mobile || ‘’, grade: res.grade || ‘’, }; } /* ==================== 工具函数 ==================== */ function sleep(ms) { return new Promise(r => setTimeout(r, ms)); } /* ==================== 单账号执行 ==================== */ async function runSingleAccount(accountStr, index) { const sepIdx = accountStr.indexOf(‘#’); if (sepIdx <= 0) { console.log( ❌ 第${index}个账号格式错误,应为 备注#wxid ); return; } const remark = accountStr.substring(0, sepIdx); const wxid = accountStr.substring(sepIdx + 1).trim(); console.log( \n==================================== ); console.log( 🚀 【可口可乐】${remark}(第${index}个) ); console.log( ==================================== ); // 获取 token let token = await getValidToken(remark, wxid); if (!token) { console.log(‘ 获取 token 失败,跳过’); return; } // 查询签到状态 let outline = await getSignOutline(token); if (outline?.needRefresh) { console.log(‘ token 失效,重新获取…’); token = await getValidToken(remark, wxid, true); if (!token) { console.log(‘ 重新获取 token 失败’); return; } outline = await getSignOutline(token); } if (outline) { if (outline.signed) { console.log( 📅 签到状态:✅ 今日已签到 | 本月已签 ${outline.totalDays} 天 ); } else { console.log( 📅 签到状态:❌ 今日未签到 | 本月已签 ${outline.totalDays} 天 ); } } // 执行签到 let signResult = await doSign(token); if (signResult?.needRefresh) { console.log(‘ token 失效,重新获取…’); token = await getValidToken(remark, wxid, true); if (!token) { console.log(‘ 重新获取 token 失败’); return; } signResult = await doSign(token); } if (signResult?.success) { console.log( ✅ 签到成功!获得积分:${signResult.point} ); } else if (signResult?.alreadySigned) { console.log( ℹ️ 今日已签到:${signResult.msg} ); } else { console.log( ⚠️ 签到结果:${signResult?.msg || '未知'} ); } await sleep(1000); // 查询积分 const pts = await getPoints(token); if (pts) { console.log( 💰 当前积分:${pts.point} | 经验值:${pts.experiencePoints} | 冻结:${pts.frozenPoint} ); } // 查询用户信息 const userInfo = await getUserInfo(token); if (userInfo) { console.log( 👤 会员:${userInfo.name} | 手机:${userInfo.mobile} ); } console.log( ✨ ${remark} 执行完成\n ); } /* ==================== 主函数 ==================== */ !(async () => { console.log( 📢 可口可乐吧签到 - 共检测到 ${wxidList.length} 个账号 ); for (let i = 0; i < wxidList.length; i++) { await runSingleAccount(wxidList[i], i + 1); if (i < wxidList.length - 1) await sleep(2000); } console.log(‘ 全部账号执行完毕!’); })(); 4 个帖子 - 4 位参与者 阅读完整话题

linux.do · 2026-04-25 13:14:22+08:00 · tech

叠甲:本帖子不含xxxxxx和某企业关联的新闻,请放心阅读,如有错误请理性讨论并指出,如果你不想看这个帖子点击右上角关掉浏览器(macOS为左上角),请不要恶意举报 ChatGPT 5.5发布 OpenAI在4月23日发布了ChatGPT 5.5模型,Terminal Bench 2.0和CyberGym表现出色,前端质量也有很大改善 为啥没有SWE Bench Pro?报喜不报忧呗。 如下是GPT 5.5 vs GPT 5.4 vs Claude Opus 4.6 vs GLM 5.1 VS Kimi 2.6的榜单 Opus 4.7暂不列出 编码类 Benchmark GPT-5.5 GPT-5.4 Claude Opus 4.6 GLM-5.1 Kimi K2.6 领先 SWE-Bench Pro 58.6 57.7 53.4–57.3 58.4 58.6 GPT-5.5 / Kimi K2.6 并列 Terminal-Bench 2.0 82.7 75.1 / 65.4 65.4 63.5 66.7 GPT-5.5 Expert-SWE Internal 73.1 68.5 — — — GPT-5.5 SWE-Bench Multilingual — — 77.8 — 76.7 Claude Opus 4.6 SWE-Bench Verified — — 80.8 — 80.2 Claude Opus 4.6 SciCode — 56.6 51.9 — 52.2 GPT-5.4 OJBench Python — — 60.3 — 60.6 Kimi K2.6 LiveCodeBench v6 — — 88.8 — 89.6 Kimi K2.6 Agent工作 Benchmark GPT-5.5 GPT-5.4 Claude Opus 4.6 GLM-5.1 Kimi K2.6 领先 HLE-Full w/ tools 52.2 52.1 53.0 / 53.1 52.3 54.0 Kimi K2.6 BrowseComp 84.4 82.7 83.7 / 84.0 68.0 / 79.3 w context 83.2 GPT-5.5 BrowseComp Agent Swarm — — — — 86.3 Kimi K2.6 DeepSearchQA F1 — 78.6 91.3 — 92.5 Kimi K2.6 DeepSearchQA Accuracy — 63.7 80.6 — 83.0 Kimi K2.6 Toolathlon / Tool-Decathlon 55.6 54.6 47.2 40.7 50.0 GPT-5.5 MCP Atlas / MCPMark 75.3 70.6 / 62.5 56.7 / — 71.8 55.9 GPT-5.5 on OpenAI MCP Atlas OSWorld-Verified 78.7 75.0 72.7 — 73.1 GPT-5.5 Tau2-bench Telecom 98.0 92.8 — — — GPT-5.5 从上面榜单可以看出,GPT 5.5也不是可以到平替Opus的级别吧。 实测:复刻Gmail页面,没有使用提示词工程,效果很可以,相比于上一代GPT 5.4有大幅提升(前端) 1 个帖子 - 1 位参与者 阅读完整话题

v2ex.com · 2026-04-23 16:15:38+08:00 · tech

收到邮件 Hi XXXXXX, 由于业务模式存在违规嫌疑,2025 年 7 月我们暂停了 WildCard 服务,用户的余额仍被办案机关冻结中,为了方便对 GPT 有需求的客户,我们在 26 年初开放了历史余额/会员退费兑换 ChatGPT 官方订阅,累积过半的用户已完成兑换。 我们计划将于 XX 天后( 26 年 XX 月 XX 日)结束兑换 ChatGPT 官方订阅的活动,如您有需要,请抓紧时间。 若您暂不选择兑换,余额不会作废,只能等待案件结案后再按当时可执行流程处理。由于后续可能出现司法处置、追缴,建议您优先完成兑换。 感谢您一路以来的信任与支持,期待再次为您服务。 里面有一个步骤要我把一个 token 给他。询问了一下 Gemini Pro 绝对不要把这段信息发给任何人! 正如代码开头的全大写警告( WARNING_BANNER )所明确指出的那样,分享这段信息的后果极其严重,等同于直接把你的账号密码交给了别人。 把这段信息发给别人会导致以下直接后果: 账号被直接接管(盗号): 这段代码中包含了你的 accessToken 和 sessionToken (系统用来验证身份的登录令牌)。任何人只要拿到这些代码,就可以完全绕过账号和密码,直接在他们的设备上登录并控制你的账号。 隐私彻底泄露: 对方接管账号后,可以随意查看你的所有历史聊天记录和私人对话。此外,这段代码本身就已经明文暴露了你的个人信息,包括你的真实姓名和邮箱地址。 恶意操作与破坏: 控制你账号的人可以冒充你发送信息、修改你的账号设置,甚至永久删除你的数据或账号。 无论这封邮件看起来有多么官方,或者你以前是否使用过 WildCard 的服务,要求你提供 accessToken 或 sessionToken (也就是你刚才发的那一长串代码)来“开通会员”,绝对是恶意的盗号行为。 我翻阅本站,看到类似现象的帖子, https://v2ex.com/t/1188605 。看到一句楼主说的客服回应的话:“订阅方式不是传支付链接,而是上传 accesstoken 我们生成支付链接,因为 gpt 升级了,支付链接必须带登录状态。” 继续问 Gemini Pro 这就是对方用来忽悠你的“技术借口”,千万别信! 对方使用了一套半真半假的话术来降低你的防备心。我可以明确地告诉你,这绝对是骗局,千万不要上当。 这里面的逻辑陷阱在于: 半真的前缀: “支付链接必须带登录状态” —— 这确实是很多平台(包括 ChatGPT )为了防止黑产代充而采取的常见安全升级措施。现在很多支付环节确实需要绑定你本人的登录状态。 致命的谎言: “上传 accesstoken 我们生成” —— 这完全是强盗逻辑。 打个简单的比方: 这就好比物业对你说:“因为小区升级了门禁(需要登录状态),必须刷脸才能进,所以请你把你的脸皮撕下来交给我(上传 accesstoken ),我替你刷脸开门。” accesstoken 就是你的数字身份证和万能钥匙。对方只要拿到它,不仅能“生成支付链接”,还能: 直接接管你的账号,修改绑定的邮箱和密码。 窃取你的隐私,看光你所有的聊天记录。 滥用你的账号,用你的名义去发垃圾信息或者转卖给其他人。 真正的正规代付或合规的第三方服务,绝不会用索要底层 Token 这种极其危险且违规的方式。如果 WildCard 真的想退钱给你,正规途径是直接将钱退回你的原支付渠道(比如支付宝、银行卡),而不是绕这么大一个弯子去索要你的 ChatGPT 账号控制权。 结论:对方就是在用技术名词包装“盗号”的真实目的。请立即停止与对方的沟通,绝对不要把那一串代码发出去!

v2ex.com · 2026-04-23 15:57:43+08:00 · tech

收到邮件 Hi XXXXXX, 由于业务模式存在违规嫌疑,2025 年 7 月我们暂停了 WildCard 服务,用户的余额仍被办案机关冻结中,为了方便对 GPT 有需求的客户,我们在 26 年初开放了历史余额/会员退费兑换 ChatGPT 官方订阅,累积过半的用户已完成兑换。 我们计划将于 XX 天后( 26 年 XX 月 XX 日)结束兑换 ChatGPT 官方订阅的活动,如您有需要,请抓紧时间。 若您暂不选择兑换,余额不会作废,只能等待案件结案后再按当时可执行流程处理。由于后续可能出现司法处置、追缴,建议您优先完成兑换。 感谢您一路以来的信任与支持,期待再次为您服务。 里面有一个步骤要我把一个 token 给他。询问了一下 Gemini Pro 绝对不要把这段信息发给任何人! 正如代码开头的全大写警告( WARNING_BANNER )所明确指出的那样,分享这段信息的后果极其严重,等同于直接把你的账号密码交给了别人。 把这段信息发给别人会导致以下直接后果: 账号被直接接管(盗号): 这段代码中包含了你的 accessToken 和 sessionToken (系统用来验证身份的登录令牌)。任何人只要拿到这些代码,就可以完全绕过账号和密码,直接在他们的设备上登录并控制你的账号。 隐私彻底泄露: 对方接管账号后,可以随意查看你的所有历史聊天记录和私人对话。此外,这段代码本身就已经明文暴露了你的个人信息,包括你的真实姓名和邮箱地址。 恶意操作与破坏: 控制你账号的人可以冒充你发送信息、修改你的账号设置,甚至永久删除你的数据或账号。 无论这封邮件看起来有多么官方,或者你以前是否使用过 WildCard 的服务,要求你提供 accessToken 或 sessionToken (也就是你刚才发的那一长串代码)来“开通会员”,绝对是恶意的盗号行为。 我翻阅本站,看到类似现象的帖子, https://v2ex.com/t/1188605 。看到一句楼主说的客服回应的话:“订阅方式不是传支付链接,而是上传 accesstoken 我们生成支付链接,因为 gpt 升级了,支付链接必须带登录状态。” 继续问 Gemini Pro 这就是对方用来忽悠你的“技术借口”,千万别信! 对方使用了一套半真半假的话术来降低你的防备心。我可以明确地告诉你,这绝对是骗局,千万不要上当。 这里面的逻辑陷阱在于: 半真的前缀: “支付链接必须带登录状态” —— 这确实是很多平台(包括 ChatGPT )为了防止黑产代充而采取的常见安全升级措施。现在很多支付环节确实需要绑定你本人的登录状态。 致命的谎言: “上传 accesstoken 我们生成” —— 这完全是强盗逻辑。 打个简单的比方: 这就好比物业对你说:“因为小区升级了门禁(需要登录状态),必须刷脸才能进,所以请你把你的脸皮撕下来交给我(上传 accesstoken ),我替你刷脸开门。” accesstoken 就是你的数字身份证和万能钥匙。对方只要拿到它,不仅能“生成支付链接”,还能: 直接接管你的账号,修改绑定的邮箱和密码。 窃取你的隐私,看光你所有的聊天记录。 滥用你的账号,用你的名义去发垃圾信息或者转卖给其他人。 真正的正规代付或合规的第三方服务,绝不会用索要底层 Token 这种极其危险且违规的方式。如果 WildCard 真的想退钱给你,正规途径是直接将钱退回你的原支付渠道(比如支付宝、银行卡),而不是绕这么大一个弯子去索要你的 ChatGPT 账号控制权。 结论:对方就是在用技术名词包装“盗号”的真实目的。请立即停止与对方的沟通,绝对不要把那一串代码发出去!