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
from service.doudian_request import doudian_request
from service.upload_video import upload_video_with_multithreading, download_video
from utils.common import check_proxy, callback_task
from utils.constant import TaskType
# 图片转换成正方形
......@@ -187,7 +187,7 @@ async def uploadImageAndVideo(task: dict = None):
# "type": 2
}
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):
"""在异步环境中运行同步函数"""
......
......@@ -3,7 +3,7 @@ import random
import time
from hashlib import md5
from urllib.parse import urlparse
from utils.constant import TaskType
import requests
from loguru import logger
from config import settings
......@@ -211,20 +211,19 @@ def encryptParams(account, password):
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()
collection_task = requests.get(f'{settings.DOMAIN}/api/collection/task', headers=DEFAULT_HEADER, params=params).json()
tasks = []
publish_task_data = publish_task.get('data', [])
collection_task_data = collection_task.get('data', [])
if publish_task_data:
tasks.append(publish_task_data)
tasks.extend(collection_task_data)
collection_task['data'] = tasks
return collection_task
if task_type == TaskType.DOUDIAN_SHOP_LOGIN:
return requests.get(f"{settings.DOMAIN}/api/collection/task", headers=DEFAULT_HEADER, params=params).json()
elif task_type == TaskType.DOUDIAN_UPLOAD_IMAGE_AND_VIDEO:
return requests.get(f"{settings.DOMAIN}/api/collection/task/getPublishTask", headers=DEFAULT_HEADER).json()
else:
raise Exception(f"未知任务类型 --> {task_type}")
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:
: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)
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)
else:
raise Exception("task_type error")
raise Exception(f"未知任务类型 --> {task_type}")
async def formatCallback(task: dict, result: dict) -> dict:
"""
格式化回调数据
:param task:
:param result:
: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