MCPcopy Index your code
hub / github.com/smallfawn/QLScriptPublic / get_task_list

Method get_task_list

daily/sfsy.py:645–698  ·  view source on GitHub ↗

获取任务列表

(self)

Source from the content-addressed store, hash-verified

643 self.http.headers['platform'] = original_platform
644
645 def get_task_list(self) -> List[Dict]:
646 """获取任务列表"""
647 url = 'https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~integralTaskStrategyService~queryPointTaskAndSignFromES'
648
649 all_tasks = []
650 task_codes_seen = set()
651
652 for channel_type in ['1', '2', '3', '4','01','02','03','04']:
653 data = {
654 'channelType': channel_type,
655 'deviceId': self.generate_device_id(),
656 }
657
658 response = self.http.request(url, data=data)
659
660 if response and response.get('success') and response.get('obj'):
661 # 只在第一次请求时获取总积分
662 if channel_type == '1':
663 self.total_points = response['obj'].get('totalPoint', 0)
664
665 tasks = response['obj'].get('taskTitleLevels', [])
666
667 # 去重添加任务
668 for task in tasks:
669 task_code = task.get('taskCode')
670 task_title = task.get('title', '未知任务')
671
672 # 尝试提取taskId
673 if 'buttonRedirect' in task:
674 extracted_id = self._extract_task_id_from_url(task['buttonRedirect'])
675 if extracted_id and not task_code:
676 task_code = extracted_id
677 task['taskCode'] = extracted_id
678
679 # 如果taskCode为空,但能从buttonRedirect中提取到taskId,则使用提取的taskId
680 if not task_code and 'buttonRedirect' in task:
681 extracted_id = self._extract_task_id_from_url(task['buttonRedirect'])
682 if extracted_id:
683 task['taskCode'] = extracted_id
684 task_code = extracted_id
685
686 # 如果taskCode仍然为空,则跳过
687 if not task_code:
688 continue
689
690 # 检查是否已存在相同taskCode的任务
691 if task_code not in task_codes_seen:
692 task_codes_seen.add(task_code)
693 all_tasks.append(task)
694 else:
695 error_msg = response.get('errorMessage', '未知错误') if response else '请求失败'
696 self.logger.warning(f'获取 channelType={channel_type} 的任务失败: {error_msg}')
697
698 return all_tasks
699
700 def execute_task(self) -> bool:
701 """执行单个任务"""

Callers 2

_update_pointsMethod · 0.95
run_all_tasksMethod · 0.95

Calls 5

generate_device_idMethod · 0.95
warningMethod · 0.80
requestMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected