Commit b2363172 by baiquan

add generate_a_bogus api

parent e28d7f4f
import execjs
from loguru import logger from loguru import logger
...@@ -34,6 +35,10 @@ class DoudianLoginRequest(BaseModel): ...@@ -34,6 +35,10 @@ class DoudianLoginRequest(BaseModel):
class DoudianUploadVideoRequest(BaseModel): class DoudianUploadVideoRequest(BaseModel):
task: dict task: dict
class GenerateABogusRequest(BaseModel):
params: str | dict
data: dict = {}
ua: str
@app.post( @app.post(
...@@ -159,6 +164,26 @@ def doudian_upload_video(req: DoudianUploadVideoRequest): ...@@ -159,6 +164,26 @@ def doudian_upload_video(req: DoudianUploadVideoRequest):
'error_type': 'TimeoutError' 'error_type': 'TimeoutError'
} }
@sync_router.post(
"/generate_a_bogus",
status_code=status.HTTP_200_OK,
summary="生成加密参数",
)
def generate_a_bogus(req: GenerateABogusRequest):
try:
task = celery_app.send_task('generate_a_bogus', kwargs=req.dict())
result = task.get(timeout=60)
logger.info(f"任务结果: {result}")
return result
except Exception as e:
logger.error(f"任务执行失败: {str(e)}")
return {
'code': 504,
'msg': '请求超时',
'data': None,
'error_type': 'TimeoutError'
}
# 注册路由 # 注册路由
app.include_router(sync_router) app.include_router(sync_router)
...@@ -187,3 +212,7 @@ def get_task_result(task_id: str): ...@@ -187,3 +212,7 @@ def get_task_result(task_id: str):
except Exception as e: except Exception as e:
logger.error(f"查询任务状态失败: {str(e)}") logger.error(f"查询任务状态失败: {str(e)}")
raise AppError raise AppError
This source diff could not be displayed because it is too large. You can view the blob instead.
from urllib.parse import urlencode
import execjs
from celery import shared_task from celery import shared_task
from upload_video import upload_video
from login import login
from errors import * from errors import *
from hub_ import * from hub_ import *
from login import login
from main import syncShop, syncShopInfo, createTemplate from main import syncShop, syncShopInfo, createTemplate
from upload_video import upload_video
@shared_task(name='sync_shop') @shared_task(name='sync_shop')
...@@ -153,3 +156,30 @@ def execute_doudian_upload_video(task: dict): ...@@ -153,3 +156,30 @@ def execute_doudian_upload_video(task: dict):
'data': None, 'data': None,
'error_type': 'InternalError' 'error_type': 'InternalError'
} }
@shared_task(name='generate_a_bogus')
def execute_generate_a_bogus(params:str | dict,data: dict,ua: str):
"""生成加密参数"""
try:
# 直接读取JS文件
with open('./js/a_bogus.js', 'r', encoding='gbk') as f:
js_code = f.read()
# 执行加密算法
ctx = execjs.compile(js_code)
if type(params) == dict:
params = urlencode(params)
result = ctx.call('get_ab', params, data, ua)
return {
'code': 200,
'msg': 'success',
'data': result,
'error_type': ''
}
except Exception as e:
logger.error(f'生成加密异常:{e}')
return {
'code': 500,
'msg': f'生成加密异常:{e}',
'data': None,
'error_type': 'InternalError'
}
\ No newline at end of file
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