(self, is_query_only=False)
| 4503 | self.session.post(url, params=params, json=body, headers=headers) |
| 4504 | |
| 4505 | def aiting_task(self, is_query_only=False): |
| 4506 | self.log("==== 联通爱听任务 ====") |
| 4507 | if not self.aiting_login_flow(): |
| 4508 | self.log("爱听任务: 登录失败,跳过") |
| 4509 | return |
| 4510 | self.log("爱听任务: 登录成功,正在获取任务列表...") |
| 4511 | try: |
| 4512 | self.aiting_query_integral() |
| 4513 | except: pass |
| 4514 | task_list = self.jf_get_task_detail(self.aiting_biz_ticket) |
| 4515 | done_list = [t for t in task_list if t.get('finish') == 1] |
| 4516 | printed_names = set() |
| 4517 | for t in done_list: |
| 4518 | name = t.get('taskName') |
| 4519 | if name not in printed_names: |
| 4520 | self.log(f" ✅ {name} ({t.get('finishCount')}/{t.get('needCount')})") |
| 4521 | printed_names.add(name) |
| 4522 | todo_list = [t for t in task_list if t.get('finish') == 0 and "邀请" not in t.get('taskName', '')] |
| 4523 | if not todo_list: |
| 4524 | self.log("爱听任务: ✅ 所有任务已完成") |
| 4525 | if is_query_only: |
| 4526 | self.log("爱听任务: [查询模式] 跳过任务执行...") |
| 4527 | return |
| 4528 | self.log(f"爱听任务: 发现 {len(todo_list)} 个待办任务") |
| 4529 | if is_query_only: |
| 4530 | self.log("爱听任务: [查询模式] 跳过任务执行...") |
| 4531 | return |
| 4532 | read_tasks = [t for t in todo_list if ("阅读" in t.get('taskName','') or "听读" in t.get('taskName','')) and "邀请" not in t.get('taskName','')] |
| 4533 | for task in read_tasks: |
| 4534 | remaining = int(task.get('needCount', 1)) - int(task.get('finishCount', 0)) |
| 4535 | if remaining <= 0: continue |
| 4536 | self.log(f"执行阅读任务: {task.get('taskName')} (剩余 {remaining} 次)") |
| 4537 | for i in range(remaining): |
| 4538 | self.jf_to_finish(self.aiting_biz_ticket, task.get('taskCode')) |
| 4539 | self.log(f" └─ 第 {i + 1}/{remaining} 次: 极速提交中...") |
| 4540 | self.aiting_new_read_add() |
| 4541 | time.sleep(5) |
| 4542 | self.aiting_add_read_time(120) |
| 4543 | time.sleep(2) |
| 4544 | self.jf_pop_up(self.aiting_biz_ticket) |
| 4545 | other_tasks = [t for t in todo_list if not any(x in t.get('taskName','') for x in ["通知", "阅读", "听读", "邀请", "签到"])] |
| 4546 | notify_task = next((t for t in todo_list if "通知" in t.get('taskName','')), None) |
| 4547 | if notify_task: |
| 4548 | self.log(f"执行通知任务: {notify_task.get('taskName')}") |
| 4549 | self.jf_to_finish(self.aiting_biz_ticket, notify_task.get('taskCode')) |
| 4550 | time.sleep(1) |
| 4551 | self.aiting_complete_task_api(2) |
| 4552 | time.sleep(2) |
| 4553 | self.jf_pop_up(self.aiting_biz_ticket) |
| 4554 | for task in other_tasks: |
| 4555 | remaining = int(task.get('needCount', 1)) - int(task.get('finishCount', 0)) |
| 4556 | if remaining <= 0: continue |
| 4557 | self.log(f"执行通用任务: {task.get('taskName')} (剩余 {remaining} 次)") |
| 4558 | for i in range(remaining): |
| 4559 | self.jf_to_finish(self.aiting_biz_ticket, task.get('taskCode')) |
| 4560 | time.sleep(1.5) |
| 4561 | self.aiting_complete_task_api(4) # Type 4 |
| 4562 | time.sleep(2) |
no test coverage detected