()
| 228 | } |
| 229 | |
| 230 | async doSign() { |
| 231 | try { |
| 232 | const before = await this.getSignInfo(); |
| 233 | const signDays = Array.isArray(before.signDays) ? before.signDays : []; |
| 234 | const todayStatus = signDays.find((item) => normalizeDate(item.signDay) === today()); |
| 235 | const dailyTask = Array.isArray(before.assignDetail) |
| 236 | ? before.assignDetail.find((item) => item.assignmentName && item.assignmentName.includes("单日")) |
| 237 | : null; |
| 238 | if (todayStatus?.signStatus === 1 || dailyTask?.completeStatus === 1) { |
| 239 | $.log(`账号[${this.index}] 今日已签到`); |
| 240 | return; |
| 241 | } |
| 242 | |
| 243 | const sign = await this.request("POST", "estore-campaign/member/sign/do", {}, { allowAnyCode: true }); |
| 244 | if (sign.resultCode !== "1") { |
| 245 | const message = sign.msg || JSON.stringify(sign); |
| 246 | if (/已签|重复/.test(message)) { |
| 247 | $.log(`账号[${this.index}] 今日已签到`); |
| 248 | return; |
| 249 | } |
| 250 | throw new Error(message); |
| 251 | } |
| 252 | |
| 253 | const after = await this.getSignInfo(); |
| 254 | const task = Array.isArray(after.assignDetail) |
| 255 | ? after.assignDetail.find((item) => item.assignmentName && item.assignmentName.includes("单日")) |
| 256 | : null; |
| 257 | $.log(`账号[${this.index}] 签到成功: +${task?.awardPrice || "未知"}积分`); |
| 258 | } catch (e) { |
| 259 | const message = e.message || e; |
| 260 | $.log(`账号[${this.index}] 签到失败: ${message}`); |
| 261 | if (isTokenError(message)) this.removeCachedToken(); |
| 262 | } |
| 263 | } |
| 264 | } |
| 265 | |
| 266 | !(async () => { |
no test coverage detected