Commit 8d390169 by baiquan

优化上传图片与视频,添加关闭所有hub浏览器方法

parent 128bb4f2
...@@ -123,6 +123,22 @@ async def checkBrowserStatus(browser_id: str = ""): ...@@ -123,6 +123,22 @@ async def checkBrowserStatus(browser_id: str = ""):
return await sendRequest("POST", url=url, json_data=data) return await sendRequest("POST", url=url, json_data=data)
async def closeAllBrowser():
"""
关闭所有浏览器
:return:
"""
url = '/api/v1/browser/stop-all'
data = {
"clearOpening": True
}
try:
return await sendRequest("POST", url=url, json_data=data)
except Exception as e:
logger.error(f"关闭所有浏览器异常-->{e}")
if __name__ == '__main__': if __name__ == '__main__':
# data = asyncio.run(envList({"containerName": "希音"})) # data = asyncio.run(envList({"containerName": "希音"}))
data = asyncio.run(openExe()) data = asyncio.run(openExe())
......
...@@ -139,16 +139,14 @@ async def uploadImageAndVideo(task: dict = None): ...@@ -139,16 +139,14 @@ async def uploadImageAndVideo(task: dict = None):
# 准备SKU图片上传 # 准备SKU图片上传
sku_image_list = [] sku_image_list = []
for sku in skus: for sku in skus:
for key, value in sku.items(): sku_id = sku.get('sku_id')
sku_id = sku.get('skuid') img_url = sku.get('image')
if isinstance(value, dict): if img_url:
img_url = value.get('image') # md5_key = hashlib.md5(img_url.encode()).hexdigest()
if img_url: local_path = get_local_path(item_id, img_url)
# md5_key = hashlib.md5(img_url.encode()).hexdigest() check_image_size(local_path)
local_path = get_local_path(item_id, img_url) local_path = convert_rect_to_square(local_path)
check_image_size(local_path) sku_image_list.append({sku_id: local_path})
local_path = convert_rect_to_square(local_path)
sku_image_list.append({sku_id: local_path})
# 准备主图上传 # 准备主图上传
image_list = [] image_list = []
...@@ -169,12 +167,13 @@ async def uploadImageAndVideo(task: dict = None): ...@@ -169,12 +167,13 @@ async def uploadImageAndVideo(task: dict = None):
description_list.append({md5_key: local_path}) description_list.append({md5_key: local_path})
try: try:
# 并行处理所有上传任务 # 并行处理所有上传任务
sku_image_dict, image_dict, description_dict, video_dict = await asyncio.gather( sku_image_dict, image_dict, description_dict = await asyncio.gather(
run_in_executor(upload_image_by_bytes, cookies, headers, proxies, sku_image_list), run_in_executor(upload_image_by_bytes, cookies, headers, proxies, sku_image_list),
run_in_executor(upload_image_by_bytes, cookies, headers, proxies, image_list), run_in_executor(upload_image_by_bytes, cookies, headers, proxies, image_list),
run_in_executor(upload_image_by_bytes, cookies, headers, proxies, description_list), run_in_executor(upload_image_by_bytes, cookies, headers, proxies, description_list),
upload_videos(task, item_id)
) )
image_list = list(image_dict.values())
video_dict = await upload_videos(task, item_id, image_list)
except Exception as e: except Exception as e:
logger.error(f"上传过程中发生错误: {str(e)}") logger.error(f"上传过程中发生错误: {str(e)}")
return None return None
...@@ -196,7 +195,7 @@ async def run_in_executor(func, *args): ...@@ -196,7 +195,7 @@ async def run_in_executor(func, *args):
return await loop.run_in_executor(None, func, *args) return await loop.run_in_executor(None, func, *args)
async def upload_videos(task: dict, item_id: str): async def upload_videos(task: dict, item_id: str, customized_images: list):
"""异步上传所有视频""" """异步上传所有视频"""
video_dict = {} video_dict = {}
video_tasks = [] video_tasks = []
...@@ -204,9 +203,12 @@ async def upload_videos(task: dict, item_id: str): ...@@ -204,9 +203,12 @@ async def upload_videos(task: dict, item_id: str):
for video_url in task.get('video_list', []): for video_url in task.get('video_list', []):
logger.info(f"开始处理视频:{video_url}") logger.info(f"开始处理视频:{video_url}")
local_video_url = get_local_path(item_id, video_url) local_video_url = get_local_path(item_id, video_url)
video_task = upload_single_video(task.copy(), local_video_url, video_url) video_task = upload_single_video(task.copy(), local_video_url, video_url, customized_images)
video_tasks.append(video_task) video_tasks.append(video_task)
# 并行执行所有视频上传任务 # 并行执行所有视频上传任务
if not task.get('video_list', []):
video_task = upload_single_video(task.copy(), "", "", customized_images)
video_tasks.append(video_task)
results = await asyncio.gather(*video_tasks) results = await asyncio.gather(*video_tasks)
# 合并结果 # 合并结果
...@@ -217,11 +219,19 @@ async def upload_videos(task: dict, item_id: str): ...@@ -217,11 +219,19 @@ async def upload_videos(task: dict, item_id: str):
return video_dict return video_dict
async def upload_single_video(task: dict, local_path: any, original_url: str): async def upload_single_video(task: dict, local_path: any, original_url: str, customized_images: list):
"""上传单个视频""" """上传单个视频"""
task['file_path'] = local_path task['file_path'] = local_path
task['video_url'] = original_url task['video_url'] = original_url
md5_key = hashlib.md5(original_url.encode()).hexdigest() product_name = task['title'].encode('utf-8').decode('unicode_escape')
task['generate_video_data'] = {
"product_name": product_name,
"customized_images": customized_images
}
if original_url:
md5_key = hashlib.md5(original_url.encode()).hexdigest()
else:
md5_key = "generated_video"
try: try:
result = await run_in_executor(upload_video_with_multithreading, task) result = await run_in_executor(upload_video_with_multithreading, task)
......
...@@ -684,11 +684,12 @@ def prepare_video_file(task): ...@@ -684,11 +684,12 @@ def prepare_video_file(task):
if not task.get("file_path"): if not task.get("file_path"):
if not os.path.exists(VIDEO_PATH): if not os.path.exists(VIDEO_PATH):
os.makedirs(VIDEO_PATH) os.makedirs(VIDEO_PATH)
file_name = f"{task['file_name']}" if not task.get("file_name"):
raise VideoError("file_name is None")
file_name = task['file_name']
file_path = os.path.join(VIDEO_PATH, file_name) file_path = os.path.join(VIDEO_PATH, file_name)
else: else:
file_path = task.get("file_path") file_path = task.get("file_path")
if not os.path.exists(file_path): if not os.path.exists(file_path):
logger.info(f"文件 {file_path} 不存在,开始下载") logger.info(f"文件 {file_path} 不存在,开始下载")
download_video(task['video_url'], file_path, headers=task['headers']) download_video(task['video_url'], file_path, headers=task['headers'])
......
...@@ -3,7 +3,7 @@ import json ...@@ -3,7 +3,7 @@ import json
import time import time
import concurrent.futures import concurrent.futures
from loguru import logger from loguru import logger
from service.hub_ import closeBrowser, envList, exportCookie from service.hub_ import closeBrowser, envList, exportCookie, closeAllBrowser
from service.page_login import page_login from service.page_login import page_login
from service.upload_image_and_video import uploadImageAndVideo from service.upload_image_and_video import uploadImageAndVideo
from utils.common import callback_task, formatCallback, get_task from utils.common import callback_task, formatCallback, get_task
...@@ -139,11 +139,13 @@ async def handle_task(task): ...@@ -139,11 +139,13 @@ async def handle_task(task):
with concurrent.futures.ThreadPoolExecutor(max_workers=INNER_MAX_WORKERS) as inner_executor: with concurrent.futures.ThreadPoolExecutor(max_workers=INNER_MAX_WORKERS) as inner_executor:
future = inner_executor.submit(run_sync_shop, task) future = inner_executor.submit(run_sync_shop, task)
try: try:
future.result(timeout=300) # 设置5分钟超时 future.result(timeout=180) # 设置3分钟超时
except concurrent.futures.TimeoutError: except concurrent.futures.TimeoutError:
logger.error(f"同步店铺任务超时: {task}") logger.error(f"同步店铺任务超时: {task}")
except Exception as e: except Exception as e:
logger.error(f"同步店铺任务异常: {e}") logger.error(f"同步店铺任务异常: {e}")
finally:
await closeAllBrowser()
elif type_ == 2: elif type_ == 2:
# 上传图片和视频任务 - 使用线程池执行 # 上传图片和视频任务 - 使用线程池执行
with concurrent.futures.ThreadPoolExecutor(max_workers=INNER_MAX_WORKERS) as inner_executor: with concurrent.futures.ThreadPoolExecutor(max_workers=INNER_MAX_WORKERS) as inner_executor:
...@@ -169,7 +171,7 @@ async def run(): ...@@ -169,7 +171,7 @@ async def run():
# {"app_name": "admin", "type": 1, "browser_type": 1, "browser_id": "1180779018"}, # {"app_name": "admin", "type": 1, "browser_type": 1, "browser_id": "1180779018"},
# {"app_name": "admin", "type": 1, "browser_type": 1, "browser_id": "1180779004"}, # {"app_name": "admin", "type": 1, "browser_type": 1, "browser_id": "1180779004"},
# {"app_name": "admin", "type": 1, "browser_type": 1, "browser_id": "1180779061"},]} # {"app_name": "admin", "type": 1, "browser_type": 1, "browser_id": "1180779061"},]}
tasks = {"code": 0, "message": "success", "data": {"item_id": 921707219436, "headers": {"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.6779.0 Safari/537.36", "sec-ch-ua": "Google Chrome\";v=\"131\", \"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\""}, "cookie": {"gfkadpd": "4272,23756", "passport_csrf_token": "085a146f3e5c7d6ffb291c1aa81f9a71", "passport_csrf_token_default": "085a146f3e5c7d6ffb291c1aa81f9a71", "ttcid": "53c81c77b3bb489d8e84e74c691a021215", "s_v_web_id": "verify_mcoicpk4_2db5c5bb_310b_79d4_f6ab_49a6ef264e36", "gd_random": "eyJtYXRjaCI6dHJ1ZSwicGVyY2VudCI6MC4xOTIxMTQ1NTI3NDIzNDU4fQ==.inx0kgU3DeIysiYrTzVjrJ3hImpr9GRyY/JD5oCWoyQ=", "zsgw_business_data": "%7B%22uuid%22%3A%22cb5919b0-458b-4624-8b98-d892792f45b9%22%2C%22platform%22%3A%22pc%22%2C%22source%22%3A%22seo.fxg.jinritemai.com%22%7D", "ecom_gray_shop_id": "225564417", "HMACCOUNT": "6BDCEA5FD75B2174", "x-web-secsdk-uid": "ba0eebd6-4bd8-48de-b5c2-8032db5e8e81", "PIGEON_CID": "7522394902744882724", "SHOP_ID": "225564417", "_tea_utm_cache_472893": "undefined", "_tea_utm_cache_643623": "undefined", "Secure": "True", "gf_part_3164895": "74", "_shop_token_": "ed474a2a302be0aff7eddac117584630", "ffa_goods_ewid": "027a8000ef7f24b9d22481d700a7eb34", "ffa_goods_seraph_did": "undefined", "Hm_lvt_b6520b076191ab4b36812da4c90f7a5e": "1751614184,1752025016", "ttwid": "1%7C5T5KdCu_h9A6pP4qtqJkuvnCdPsfIRAm_dESgkSngmw%7C1752230963%7Cd53db946aa81740ad6e6d58ff0088d40c3ea5d8b436d38413c46709cfcff0b01", "tt_scid": "2KhbBXGi8bq7NY4eEzJ5Ufm6FSnwaPn4YCYNBgBV.5o8p9.vxD3GDJ3vNHnJjomae74f", "d_ticket_doudian": "fdc963a28a3d01565c5cdd7c5ca9370589493", "n_mh_doudian": "9-mIeuD4wZnlYrrOvfzG3MuT6aQmCUtmr8FxV8Kl8xY", "odin_tt": "e6355d3676dde538ff181f527dc4c41eff64064ef8cad5dcc1025a0e4cb6c85c22670aa3949866ec315660abc92b616b2b91a2e1a8a22c932b76f80ecdb16664", "passport_mfa_token": "CjH6e8E1oe3y3s4Dnhr%2FwwzAVTZiA4ZF0NgsK5ukU9XG6f%2B4oIxVrT6I2159TRkWiJeaGkoKPAAAAAAAAAAAAABPOLzKSMDQhC8NS2qIXsj2pRnOTqs1KCiBjE%2BljrWpk1yLHjX5arEfMaaO0bHRcP57%2BhC7ufYNGPax0WwgAiIBA2h3AgA%3D", "session_tlb_tag": "sttt%7C10%7CABEYXGW9YgvKXr0ig8tAaP________-h9ea8ZAQgTyGsZJXe3JHrS14yvoUHqDuvWyWWQBfImjs%3D", "sid_ucp_sso_v1_doudian": "1.0.0-KGU0Y2RkNjIyODFjZjZiZDJlOTlmMGFhYThhN2M3MzUwMzliMjQ4Y2YKHwjHtKCqrKyYBBC72MPDBhiwISAMMPuoscEGOAFA6wcaAmhsIiA3ZGViOTY4MWM2YWY1MDczY2VhZTI2OThjMzUyNmMzZg", "ssid_ucp_sso_v1_doudian": "1.0.0-KGU0Y2RkNjIyODFjZjZiZDJlOTlmMGFhYThhN2M3MzUwMzliMjQ4Y2YKHwjHtKCqrKyYBBC72MPDBhiwISAMMPuoscEGOAFA6wcaAmhsIiA3ZGViOTY4MWM2YWY1MDczY2VhZTI2OThjMzUyNmMzZg", "sso_uid_tt_doudian": "233262f0e2201aebe809a7a97ecf022d", "sso_uid_tt_ss_doudian": "233262f0e2201aebe809a7a97ecf022d", "toutiao_sso_user_doudian": "7deb9681c6af5073ceae2698c3526c3f", "toutiao_sso_user_ss_doudian": "7deb9681c6af5073ceae2698c3526c3f", "ucas_sso_c0_doudian": "CkEKBTEuMC4wEKKIgbjlhru4aBjmJiDI3ICqrKzkAiiwITDHtKCqrKyYBEC-2MPDBki-jIDGBlCkvMWy8Mm6smhYbxIUwHgyZP-VYrNHnWycmKXWIA8Vg_4", "ucas_sso_c0_ss_doudian": "CkEKBTEuMC4wEKKIgbjlhru4aBjmJiDI3ICqrKzkAiiwITDHtKCqrKyYBEC-2MPDBki-jIDGBlCkvMWy8Mm6smhYbxIUwHgyZP-VYrNHnWycmKXWIA8Vg_4", "ucas_c0": "CkEKBTEuMC4wEKKIia7chru4aBjmJiDI3ICqrKzkAiiwITDHtKCqrKyYBEC-2MPDBki-jIDGBlCkvMWy8Mm6smhYbxIU6MBKgzZvfJFEpQfFPi2ecy1UGEQ", "ucas_c0_ss": "CkEKBTEuMC4wEKKIia7chru4aBjmJiDI3ICqrKzkAiiwITDHtKCqrKyYBEC-2MPDBki-jIDGBlCkvMWy8Mm6smhYbxIU6MBKgzZvfJFEpQfFPi2ecy1UGEQ", "PHPSESSID": "201b8255bfb1cf7538bb1d090332eef2", "PHPSESSID_SS": "201b8255bfb1cf7538bb1d090332eef2", "is_staff_user": "false", "sessionid": "0011185c65bd620bca5ebd2283cb4068", "sessionid_ss": "0011185c65bd620bca5ebd2283cb4068", "sid_guard": "0011185c65bd620bca5ebd2283cb4068%7C1752230990%7C5184000%7CTue%2C+09-Sep-2025+10%3A49%3A50+GMT", "sid_tt": "0011185c65bd620bca5ebd2283cb4068", "sid_ucp_v1": "1.0.0-KGFkNzFkNmYzODAwZGI5OGM0NGQ5NzA3M2QxNjAyMWM2Njc2N2I5MTgKGQjHtKCqrKyYBBDO2MPDBhiwISAMOAFA6wcaAmxmIiAwMDExMTg1YzY1YmQ2MjBiY2E1ZWJkMjI4M2NiNDA2OA", "ssid_ucp_v1": "1.0.0-KGFkNzFkNmYzODAwZGI5OGM0NGQ5NzA3M2QxNjAyMWM2Njc2N2I5MTgKGQjHtKCqrKyYBBDO2MPDBhiwISAMOAFA6wcaAmxmIiAwMDExMTg1YzY1YmQ2MjBiY2E1ZWJkMjI4M2NiNDA2OA", "uid_tt": "506f7b0c81c01d7514c886854f5a79cd", "uid_tt_ss": "506f7b0c81c01d7514c886854f5a79cd", "COMPASS_LUOPAN_DT": "session_7525773154556346650", "BUYIN_SASID": "SID2_7525774050096169251", "Hm_lpvt_b6520b076191ab4b36812da4c90f7a5e": "1752230958", "csrf_session_id": "a863c649f0721c8150f5bda69b659380", "source": "seo.fxg.jinritemai.com"}, "proxies": "socks5h://hwK7px85A9cNB9wR:vEh67THqHh2Xjpj3@58.251.252.66:9001", "skus": [{"sku_id": "825460040364440779", "image": "http://159.75.92.198:8808/uploads/20250627/921707219436/685e6e10c2dda.jpg"}, {"sku_id": "410752745034944154", "image": "http://159.75.92.198:8808/uploads/20250627/921707219436/685e6e1113966.jpg"}, {"sku_id": "702228012132942343", "image": "http://159.75.92.198:8808/uploads/20250627/921707219436/685e6e1157b12.jpg"}], "images": ["http://159.75.92.198:8808/uploads/20250627/921707219436/685e6e0fcfe49.jpg", "http://159.75.92.198:8808/uploads/20250627/921707219436/685e6e1003a57.jpg", "http://159.75.92.198:8808/uploads/20250627/921707219436/685e6e10308d6.jpg", "http://159.75.92.198:8808/uploads/20250627/921707219436/685e6e105d8bc.jpg", "http://159.75.92.198:8808/uploads/20250627/921707219436/685e6e107ea6d.jpg"], "description": ["http://159.75.92.198:8808/uploads/20250627/921707219436/685e6e1175948.jpg", "http://159.75.92.198:8808/uploads/20250627/921707219436/685e6e11a1ba4.jpg", "http://159.75.92.198:8808/uploads/20250627/921707219436/685e6e11e1259.jpg", "http://159.75.92.198:8808/uploads/20250627/921707219436/685e6e1218e11.jpg", "http://159.75.92.198:8808/uploads/20250627/921707219436/685e6e12586e5.jpg", "http://159.75.92.198:8808/uploads/20250627/921707219436/685e6e1276dfc.jpg", "http://159.75.92.198:8808/uploads/20250627/921707219436/685e6e12b860c.jpg", "http://159.75.92.198:8808/uploads/20250627/921707219436/685e6e12e83c0.jpg", "http://159.75.92.198:8808/uploads/20250627/921707219436/685e6e1323a3d.jpg", "http://159.75.92.198:8808/uploads/20250627/921707219436/685e6e1352ab0.jpg", "http://159.75.92.198:8808/uploads/20250627/921707219436/685e6e137c861.jpg", "http://159.75.92.198:8808/uploads/20250627/921707219436/685e6e13ae9ad.jpg"], "video_list": ["https://cloud.video.taobao.com/play/u/3546714953/p/2/e/6/t/1/518590669530.mp4?appKey=38829"], "type": 2}, "status_code": 200} # tasks = {"code": 0, "message": "success", "data": {"item_id": 921707219436, "headers": {"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.6779.0 Safari/537.36", "sec-ch-ua": "Google Chrome\";v=\"131\", \"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\""}, "cookie": {"gfkadpd": "4272,23756", "passport_csrf_token": "085a146f3e5c7d6ffb291c1aa81f9a71", "passport_csrf_token_default": "085a146f3e5c7d6ffb291c1aa81f9a71", "ttcid": "53c81c77b3bb489d8e84e74c691a021215", "s_v_web_id": "verify_mcoicpk4_2db5c5bb_310b_79d4_f6ab_49a6ef264e36", "gd_random": "eyJtYXRjaCI6dHJ1ZSwicGVyY2VudCI6MC4xOTIxMTQ1NTI3NDIzNDU4fQ==.inx0kgU3DeIysiYrTzVjrJ3hImpr9GRyY/JD5oCWoyQ=", "zsgw_business_data": "%7B%22uuid%22%3A%22cb5919b0-458b-4624-8b98-d892792f45b9%22%2C%22platform%22%3A%22pc%22%2C%22source%22%3A%22seo.fxg.jinritemai.com%22%7D", "ecom_gray_shop_id": "225564417", "HMACCOUNT": "6BDCEA5FD75B2174", "x-web-secsdk-uid": "ba0eebd6-4bd8-48de-b5c2-8032db5e8e81", "PIGEON_CID": "7522394902744882724", "SHOP_ID": "225564417", "_tea_utm_cache_472893": "undefined", "_tea_utm_cache_643623": "undefined", "Secure": "True", "gf_part_3164895": "74", "_shop_token_": "ed474a2a302be0aff7eddac117584630", "ffa_goods_ewid": "027a8000ef7f24b9d22481d700a7eb34", "ffa_goods_seraph_did": "undefined", "Hm_lvt_b6520b076191ab4b36812da4c90f7a5e": "1751614184,1752025016", "ttwid": "1%7C5T5KdCu_h9A6pP4qtqJkuvnCdPsfIRAm_dESgkSngmw%7C1752230963%7Cd53db946aa81740ad6e6d58ff0088d40c3ea5d8b436d38413c46709cfcff0b01", "tt_scid": "2KhbBXGi8bq7NY4eEzJ5Ufm6FSnwaPn4YCYNBgBV.5o8p9.vxD3GDJ3vNHnJjomae74f", "d_ticket_doudian": "fdc963a28a3d01565c5cdd7c5ca9370589493", "n_mh_doudian": "9-mIeuD4wZnlYrrOvfzG3MuT6aQmCUtmr8FxV8Kl8xY", "odin_tt": "e6355d3676dde538ff181f527dc4c41eff64064ef8cad5dcc1025a0e4cb6c85c22670aa3949866ec315660abc92b616b2b91a2e1a8a22c932b76f80ecdb16664", "passport_mfa_token": "CjH6e8E1oe3y3s4Dnhr%2FwwzAVTZiA4ZF0NgsK5ukU9XG6f%2B4oIxVrT6I2159TRkWiJeaGkoKPAAAAAAAAAAAAABPOLzKSMDQhC8NS2qIXsj2pRnOTqs1KCiBjE%2BljrWpk1yLHjX5arEfMaaO0bHRcP57%2BhC7ufYNGPax0WwgAiIBA2h3AgA%3D", "session_tlb_tag": "sttt%7C10%7CABEYXGW9YgvKXr0ig8tAaP________-h9ea8ZAQgTyGsZJXe3JHrS14yvoUHqDuvWyWWQBfImjs%3D", "sid_ucp_sso_v1_doudian": "1.0.0-KGU0Y2RkNjIyODFjZjZiZDJlOTlmMGFhYThhN2M3MzUwMzliMjQ4Y2YKHwjHtKCqrKyYBBC72MPDBhiwISAMMPuoscEGOAFA6wcaAmhsIiA3ZGViOTY4MWM2YWY1MDczY2VhZTI2OThjMzUyNmMzZg", "ssid_ucp_sso_v1_doudian": "1.0.0-KGU0Y2RkNjIyODFjZjZiZDJlOTlmMGFhYThhN2M3MzUwMzliMjQ4Y2YKHwjHtKCqrKyYBBC72MPDBhiwISAMMPuoscEGOAFA6wcaAmhsIiA3ZGViOTY4MWM2YWY1MDczY2VhZTI2OThjMzUyNmMzZg", "sso_uid_tt_doudian": "233262f0e2201aebe809a7a97ecf022d", "sso_uid_tt_ss_doudian": "233262f0e2201aebe809a7a97ecf022d", "toutiao_sso_user_doudian": "7deb9681c6af5073ceae2698c3526c3f", "toutiao_sso_user_ss_doudian": "7deb9681c6af5073ceae2698c3526c3f", "ucas_sso_c0_doudian": "CkEKBTEuMC4wEKKIgbjlhru4aBjmJiDI3ICqrKzkAiiwITDHtKCqrKyYBEC-2MPDBki-jIDGBlCkvMWy8Mm6smhYbxIUwHgyZP-VYrNHnWycmKXWIA8Vg_4", "ucas_sso_c0_ss_doudian": "CkEKBTEuMC4wEKKIgbjlhru4aBjmJiDI3ICqrKzkAiiwITDHtKCqrKyYBEC-2MPDBki-jIDGBlCkvMWy8Mm6smhYbxIUwHgyZP-VYrNHnWycmKXWIA8Vg_4", "ucas_c0": "CkEKBTEuMC4wEKKIia7chru4aBjmJiDI3ICqrKzkAiiwITDHtKCqrKyYBEC-2MPDBki-jIDGBlCkvMWy8Mm6smhYbxIU6MBKgzZvfJFEpQfFPi2ecy1UGEQ", "ucas_c0_ss": "CkEKBTEuMC4wEKKIia7chru4aBjmJiDI3ICqrKzkAiiwITDHtKCqrKyYBEC-2MPDBki-jIDGBlCkvMWy8Mm6smhYbxIU6MBKgzZvfJFEpQfFPi2ecy1UGEQ", "PHPSESSID": "201b8255bfb1cf7538bb1d090332eef2", "PHPSESSID_SS": "201b8255bfb1cf7538bb1d090332eef2", "is_staff_user": "false", "sessionid": "0011185c65bd620bca5ebd2283cb4068", "sessionid_ss": "0011185c65bd620bca5ebd2283cb4068", "sid_guard": "0011185c65bd620bca5ebd2283cb4068%7C1752230990%7C5184000%7CTue%2C+09-Sep-2025+10%3A49%3A50+GMT", "sid_tt": "0011185c65bd620bca5ebd2283cb4068", "sid_ucp_v1": "1.0.0-KGFkNzFkNmYzODAwZGI5OGM0NGQ5NzA3M2QxNjAyMWM2Njc2N2I5MTgKGQjHtKCqrKyYBBDO2MPDBhiwISAMOAFA6wcaAmxmIiAwMDExMTg1YzY1YmQ2MjBiY2E1ZWJkMjI4M2NiNDA2OA", "ssid_ucp_v1": "1.0.0-KGFkNzFkNmYzODAwZGI5OGM0NGQ5NzA3M2QxNjAyMWM2Njc2N2I5MTgKGQjHtKCqrKyYBBDO2MPDBhiwISAMOAFA6wcaAmxmIiAwMDExMTg1YzY1YmQ2MjBiY2E1ZWJkMjI4M2NiNDA2OA", "uid_tt": "506f7b0c81c01d7514c886854f5a79cd", "uid_tt_ss": "506f7b0c81c01d7514c886854f5a79cd", "COMPASS_LUOPAN_DT": "session_7525773154556346650", "BUYIN_SASID": "SID2_7525774050096169251", "Hm_lpvt_b6520b076191ab4b36812da4c90f7a5e": "1752230958", "csrf_session_id": "a863c649f0721c8150f5bda69b659380", "source": "seo.fxg.jinritemai.com"}, "proxies": "socks5h://hwK7px85A9cNB9wR:vEh67THqHh2Xjpj3@58.251.252.66:9001", "skus": [{"sku_id": "809490529481131183", "image": "http://159.75.92.198:8808/uploads/20250627/921707219436/685e6e10c2dda.jpg"}, {"sku_id": "871626639039123243", "image": "http://159.75.92.198:8808/uploads/20250627/921707219436/685e6e1113966.jpg"}, {"sku_id": "727997144358380388", "image": "http://159.75.92.198:8808/uploads/20250627/921707219436/685e6e1157b12.jpg"}], "images": ["http://159.75.92.198:8808/uploads/20250627/921707219436/685e6e0fcfe49.jpg", "http://159.75.92.198:8808/uploads/20250627/921707219436/685e6e1003a57.jpg", "http://159.75.92.198:8808/uploads/20250627/921707219436/685e6e10308d6.jpg", "http://159.75.92.198:8808/uploads/20250627/921707219436/685e6e105d8bc.jpg", "http://159.75.92.198:8808/uploads/20250627/921707219436/685e6e107ea6d.jpg"], "description": ["http://159.75.92.198:8808/uploads/20250627/921707219436/685e6e1175948.jpg", "http://159.75.92.198:8808/uploads/20250627/921707219436/685e6e11a1ba4.jpg", "http://159.75.92.198:8808/uploads/20250627/921707219436/685e6e11e1259.jpg", "http://159.75.92.198:8808/uploads/20250627/921707219436/685e6e1218e11.jpg", "http://159.75.92.198:8808/uploads/20250627/921707219436/685e6e12586e5.jpg", "http://159.75.92.198:8808/uploads/20250627/921707219436/685e6e1276dfc.jpg", "http://159.75.92.198:8808/uploads/20250627/921707219436/685e6e12b860c.jpg", "http://159.75.92.198:8808/uploads/20250627/921707219436/685e6e12e83c0.jpg", "http://159.75.92.198:8808/uploads/20250627/921707219436/685e6e1323a3d.jpg", "http://159.75.92.198:8808/uploads/20250627/921707219436/685e6e1352ab0.jpg", "http://159.75.92.198:8808/uploads/20250627/921707219436/685e6e137c861.jpg", "http://159.75.92.198:8808/uploads/20250627/921707219436/685e6e13ae9ad.jpg"], "video_list": ["https://cloud.video.taobao.com/play/u/3546714953/p/2/e/6/t/1/518590669530.mp4?appKey=38829"], "title": "2025\u590f\u5b63\u65b0\u6b3e\u5f3a\u529b\u706d\u868a\u706f\u5bb6\u7528\u84dd\u5149\u8bf1\u868a\u706f", "type": 2}, "status_code": 200}
except: except:
logger.error('获取任务失败') logger.error('获取任务失败')
return return
...@@ -208,6 +210,6 @@ if __name__ == '__main__': ...@@ -208,6 +210,6 @@ if __name__ == '__main__':
# 内层线程池大小(每个任务) # 内层线程池大小(每个任务)
INNER_MAX_WORKERS = 3 INNER_MAX_WORKERS = 3
# while True: while True:
asyncio.run(run()) asyncio.run(run())
# time.sleep(10) time.sleep(10)
...@@ -216,12 +216,13 @@ async def get_task(params: dict = None): ...@@ -216,12 +216,13 @@ async def get_task(params: dict = None):
获取任务 获取任务
""" """
publish_task = requests.get(f"{settings.DOMAIN}/api/collection/task/getPublishTask", headers=DEFAULT_HEADER).json() 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() collection_task = requests.get(f'{settings.DOMAIN}/api/collection/task', headers=DEFAULT_HEADER, params=params).json()
# if collection_task.get('data', []): publish_task_data = publish_task.get('data', [])
# collection_task['data'].extend(publish_task_data) if publish_task_data:
# return collection_task collection_task['data'].extend(publish_task_data)
# else: return collection_task
return publish_task else:
return publish_task
async def callback_task(data: dict, task_type:int): async def callback_task(data: dict, task_type:int):
""" """
...@@ -233,7 +234,7 @@ async def callback_task(data: dict, task_type:int): ...@@ -233,7 +234,7 @@ async def callback_task(data: dict, task_type:int):
if task_type == 1: if task_type == 1:
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 == 2:
return requests.post(f"{settings.DOMAIN}/api/collection/task/callBackPublishTask", json=data) return requests.post(f"{settings.DOMAIN}/api/collection/task/callBackPublishTask", json=data, headers=DEFAULT_HEADER)
else: else:
raise Exception("task_type error") raise Exception("task_type error")
......
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