Commit 46f8e0be by baiquan

refactor(task): 重构任务获取逻辑

- 新增 TaskType枚举类,用于定义任务类型
- 修改 get_task 和 callback_task 函数,增加任务类型参数- 优化任务获取逻辑,根据任务类型调用不同的 API
- 更新 shop.py 和 upload_image_and_video.py,使用新的任务类型参数- 修复了一些与任务相关的小问题
parent 532411b1
...@@ -11,7 +11,7 @@ from config import settings ...@@ -11,7 +11,7 @@ from config import settings
from service.doudian_request import doudian_request from service.doudian_request import doudian_request
from service.upload_video import upload_video_with_multithreading, download_video from service.upload_video import upload_video_with_multithreading, download_video
from utils.common import check_proxy, callback_task from utils.common import check_proxy, callback_task
from utils.constant import TaskType
# 图片转换成正方形 # 图片转换成正方形
...@@ -187,7 +187,7 @@ async def uploadImageAndVideo(task: dict = None): ...@@ -187,7 +187,7 @@ async def uploadImageAndVideo(task: dict = None):
# "type": 2 # "type": 2
} }
logger.info(json.dumps(callback_data)) logger.info(json.dumps(callback_data))
await callback_task(callback_data, 2) await callback_task(callback_data, TaskType.DOUDIAN_UPLOAD_IMAGE_AND_VIDEO)
async def run_in_executor(func, *args): async def run_in_executor(func, *args):
"""在异步环境中运行同步函数""" """在异步环境中运行同步函数"""
......
...@@ -3,7 +3,7 @@ import random ...@@ -3,7 +3,7 @@ import random
import time import time
from hashlib import md5 from hashlib import md5
from urllib.parse import urlparse from urllib.parse import urlparse
from utils.constant import TaskType
import requests import requests
from loguru import logger from loguru import logger
from config import settings from config import settings
...@@ -211,20 +211,19 @@ def encryptParams(account, password): ...@@ -211,20 +211,19 @@ def encryptParams(account, password):
return e return e
async def get_task(params: dict = None): async def get_task(params: dict = None, task_type:int = TaskType.DOUDIAN_SHOP_LOGIN):
""" """
获取任务 获取任务
:param params:
:param task_type:
:return:
""" """
publish_task = requests.get(f"{settings.DOMAIN}/api/collection/task/getPublishTask", headers=DEFAULT_HEADER).json() if task_type == TaskType.DOUDIAN_SHOP_LOGIN:
collection_task = requests.get(f'{settings.DOMAIN}/api/collection/task', headers=DEFAULT_HEADER, params=params).json() return requests.get(f"{settings.DOMAIN}/api/collection/task", headers=DEFAULT_HEADER, params=params).json()
tasks = [] elif task_type == TaskType.DOUDIAN_UPLOAD_IMAGE_AND_VIDEO:
publish_task_data = publish_task.get('data', []) return requests.get(f"{settings.DOMAIN}/api/collection/task/getPublishTask", headers=DEFAULT_HEADER).json()
collection_task_data = collection_task.get('data', []) else:
if publish_task_data: raise Exception(f"未知任务类型 --> {task_type}")
tasks.append(publish_task_data)
tasks.extend(collection_task_data)
collection_task['data'] = tasks
return collection_task
async def callback_task(data: dict, task_type:int): async def callback_task(data: dict, task_type:int):
""" """
...@@ -233,18 +232,17 @@ async def callback_task(data: dict, task_type:int): ...@@ -233,18 +232,17 @@ async def callback_task(data: dict, task_type:int):
:param task_type: :param task_type:
:return: :return:
""" """
if task_type == 1: if task_type == TaskType.DOUDIAN_SHOP_LOGIN:
return requests.post(f"{settings.DOMAIN}/api/collection/task", json=data, headers=DEFAULT_HEADER) return requests.post(f"{settings.DOMAIN}/api/collection/task", json=data, headers=DEFAULT_HEADER)
elif task_type == 2: elif task_type == TaskType.DOUDIAN_UPLOAD_IMAGE_AND_VIDEO:
return requests.post(f"{settings.DOMAIN}/api/collection/task/callBackPublishTask", json=data, headers=DEFAULT_HEADER) return requests.post(f"{settings.DOMAIN}/api/collection/task/callBackPublishTask", json=data, headers=DEFAULT_HEADER)
else: else:
raise Exception("task_type error") raise Exception(f"未知任务类型 --> {task_type}")
async def formatCallback(task: dict, result: dict) -> dict: async def formatCallback(task: dict, result: dict) -> dict:
""" """
格式化回调数据 格式化回调数据
:param task: :param task:
:param result: :param result:
:return dict: :return dict:
......
class TaskType:
"""
任务类型
"""
DOUDIAN_SHOP_LOGIN = 1
DOUDIAN_UPLOAD_IMAGE_AND_VIDEO = 2
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment