creditdaddy 1.5.2 → 1.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build.json +3 -3
- package/package.json +1 -1
- package/src/assets/donate-alipay.svg +1 -0
- package/src/assets/donate-ifdian.svg +1 -0
- package/src/assets/donate-wechat.svg +1 -0
- package/src/checkin.js +11 -10
- package/src/constants.js +3 -1
- package/src/cookieSites.js +30 -11
- package/src/daemon.js +2062 -1961
- package/src/doubaoClient.js +168 -0
- package/src/externalQuota.js +113 -9
- package/src/formatDuration.js +17 -0
- package/src/i18n/en.json +1734 -1755
- package/src/i18n/ja.json +1734 -1755
- package/src/i18n/ko.json +1734 -1755
- package/src/i18n/zh-TW.json +1734 -1755
- package/src/longcatClient.js +24 -15
- package/src/minimaxClient.js +29 -0
- package/src/minimaxGateway.js +459 -419
- package/src/mirasimClient.js +3 -0
- package/src/panel.html +393 -126
- package/src/providers.js +39 -3
- package/src/qoderApp.js +10 -1
- package/src/tenrouter.js +27 -3
- package/src/traeClient.js +23 -15
- package/src/traeGateway.js +52 -4
- package/src/traeLocal.js +14 -4
- package/src/usageSync.js +10 -2
- package/src/workbuddyClient.js +0 -45
- package/src/workbuddyLocal.js +40 -0
- package/src/zcodeAutoClaim.js +21 -4
- package/src/zcodeClient.js +8 -0
- package/src/zcodeGateway.js +763 -616
package/src/longcatClient.js
CHANGED
|
@@ -13,9 +13,12 @@
|
|
|
13
13
|
* → data.otherLots[] 其余可用包(同形状;expireTime "YYYY-MM-DD HH:mm:ss")
|
|
14
14
|
* (/commercial/entitlements/token-packs/list 实测返回空分页壳,summary 已含全部字段,不采用)
|
|
15
15
|
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
16
|
+
* 卡面口径(issue #37 定版「字段即真相」):Balance 汇总行 = 全部 ACTIVE 包
|
|
17
|
+
* remaining 之和(isCreditBalance + summarizesDetail,used/total 推 Σ消耗/Σ总量,
|
|
18
|
+
* 10R 的池条按真实消耗画空段);逐包明细腿 = currentLot + otherLots 各一行
|
|
19
|
+
* (detailOnly,used=consumed、total=包总量、remainingPercentage=剩余%、
|
|
20
|
+
* name 纯文案「获赠资源包/资源包」,到期日走 resetAt),排序按 consumeOrder
|
|
21
|
+
* ——官方「赠送先扣、近到期先扣」的消耗顺序。
|
|
19
22
|
*
|
|
20
23
|
* 安全纪律:会话 cookie 只存本机账号库(0600),推 10Router 只带 token 数字标量。
|
|
21
24
|
*/
|
|
@@ -160,8 +163,10 @@ export function longcatSnapshot(packs) {
|
|
|
160
163
|
|
|
161
164
|
/**
|
|
162
165
|
* 组装 LongCat 资源包的 10Router external-quota 载荷(储值卡 + 逐包明细)。
|
|
163
|
-
* - Balance 汇总行 = 全部 ACTIVE 包 remaining 之和(isCreditBalance + summarizesDetail
|
|
164
|
-
*
|
|
166
|
+
* - Balance 汇总行 = 全部 ACTIVE 包 remaining 之和(isCreditBalance + summarizesDetail,
|
|
167
|
+
* used/total 推 Σ消耗/Σ总量——池条据此画消耗空段);
|
|
168
|
+
* - 逐包明细腿 = 每包一行(detailOnly,used=consumed、total=包总量、name 纯文案),
|
|
169
|
+
* 0 剩余包也出行;
|
|
165
170
|
* - 无可用包(全部耗尽/过期)→ message 状态卡。
|
|
166
171
|
* @param {object} account meta.longcatPacks(快照)
|
|
167
172
|
* @param {{ packs?: Array, error?: string, authInvalid?: boolean }} [liveData]
|
|
@@ -206,26 +211,30 @@ export function buildLongcatQuotaPayload(account, liveData = null) {
|
|
|
206
211
|
const v = Number(n) || 0;
|
|
207
212
|
return v >= 1e4 ? `${Math.round(v / 1e4 * 100) / 100} 万` : String(v);
|
|
208
213
|
};
|
|
214
|
+
// 字段即真相(issue #37):used/total/remainingPercentage 推真实数字,
|
|
215
|
+
// name 只做纯文案——10R 渲染链自会出倒计时、剩余/总量与消耗百分比,
|
|
216
|
+
// 数字拼进 name 只会让卡面同一数值印两遍、进度条与文字互相矛盾。
|
|
217
|
+
const pct1 = (rem, tot) => (tot > 0 ? Math.max(0, Math.min(100, Math.round((rem / tot) * 1000) / 10)) : 0);
|
|
218
|
+
const totalAll = active.reduce((s, p) => s + Math.max(0, Number(p.total) || 0), 0);
|
|
219
|
+
const usedAll = active.reduce((s, p) => s + Math.max(0, Number(p.consumed) || 0), 0);
|
|
209
220
|
payload.quotas = {
|
|
210
221
|
Balance: {
|
|
211
222
|
name: `${t('剩余')} ${f(balance)} (${t('Token')})`,
|
|
212
|
-
used:
|
|
213
|
-
total:
|
|
214
|
-
remainingPercentage:
|
|
223
|
+
used: usedAll,
|
|
224
|
+
total: totalAll,
|
|
225
|
+
remainingPercentage: pct1(balance, totalAll),
|
|
215
226
|
displayRemaining: true,
|
|
216
227
|
isCreditBalance: true,
|
|
217
228
|
summarizesDetail: true,
|
|
218
229
|
},
|
|
219
230
|
};
|
|
220
231
|
for (const [i, p] of active.entries()) {
|
|
221
|
-
const
|
|
222
|
-
const exp = p.expireAt ? ` · ${t('至')} ${String(p.expireAt).slice(5, 10)}` : '';
|
|
223
|
-
const kind = p.grantCategory === 'GIFT' || p.source === 'FREE_PACK' ? t('赠送') : '';
|
|
232
|
+
const kind = p.grantCategory === 'GIFT' || p.source === 'FREE_PACK';
|
|
224
233
|
payload.quotas[`Pack${i + 1}`] = {
|
|
225
|
-
name:
|
|
226
|
-
used: 0,
|
|
227
|
-
total:
|
|
228
|
-
remainingPercentage: Number(p.remaining)
|
|
234
|
+
name: kind ? t('获赠资源包') : t('资源包'),
|
|
235
|
+
used: Math.max(0, Number(p.consumed) || 0),
|
|
236
|
+
total: Number(p.total),
|
|
237
|
+
remainingPercentage: pct1(Math.max(0, Number(p.remaining)), Number(p.total)),
|
|
229
238
|
displayRemaining: true,
|
|
230
239
|
isCreditBalance: true,
|
|
231
240
|
...(kind ? { giftPack: true } : {}),
|
package/src/minimaxClient.js
CHANGED
|
@@ -286,6 +286,35 @@ export function normalizeMiniMaxQuota(data) {
|
|
|
286
286
|
};
|
|
287
287
|
}
|
|
288
288
|
|
|
289
|
+
/**
|
|
290
|
+
* 只查签到状态,不打 claim(10R 只读推送用,issue #33)。
|
|
291
|
+
* 刷新失败等凭据问题照常抛错;查询失败返回 null(推送侧降级为不带签到字段)。
|
|
292
|
+
* @returns {Promise<{checkedToday: boolean, streakDays: number, points: number, bonusPoints: number}|null>}
|
|
293
|
+
*/
|
|
294
|
+
export async function fetchMiniMaxCheckinStatus(account, ctx = {}) {
|
|
295
|
+
try {
|
|
296
|
+
return await withMiniMaxAuth(account, async (token) => {
|
|
297
|
+
const statusRes = await fetchJsonRace(SIGNIN_STATUS_URL, {
|
|
298
|
+
headers: authHeaders(token),
|
|
299
|
+
timeoutMs: FETCH_TIMEOUT_MS,
|
|
300
|
+
});
|
|
301
|
+
if (!statusRes.ok) return null;
|
|
302
|
+
const statusData = await statusRes.json().catch(() => null);
|
|
303
|
+
if (!statusData || statusData.base_resp?.status_code !== 0) return null;
|
|
304
|
+
const today = (statusData.data?.days || []).find((d) => d.is_today);
|
|
305
|
+
if (!today) return null;
|
|
306
|
+
return {
|
|
307
|
+
checkedToday: today.status === 3,
|
|
308
|
+
streakDays: today.day_no || 0,
|
|
309
|
+
points: today.points || 0,
|
|
310
|
+
bonusPoints: today.bonus_points || 0,
|
|
311
|
+
};
|
|
312
|
+
}, ctx);
|
|
313
|
+
} catch {
|
|
314
|
+
return null; // 推送是旁路:凭据失效 / 网络抖动都不该炸整轮推送
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
|
|
289
318
|
/**
|
|
290
319
|
* 每日自动签到 (checkin)
|
|
291
320
|
*/
|