代码优化

This commit is contained in:
liujianjiang 2025-11-29 10:18:38 +08:00
parent f103de647f
commit a601f2b2a1
4 changed files with 34 additions and 18 deletions

18
main.py
View File

@ -8,7 +8,7 @@ from typing import Dict, Any, Optional, List
from fastapi import FastAPI, HTTPException, Depends, Header from fastapi import FastAPI, HTTPException, Depends, Header
from public_function.auth import verify_tk_token from public_function.auth import verify_tk_token
from public_function.public_func import read_config, create_logger from public_function.public_func import read_config, create_logger
from model.model import GoodsInfo, DataReceive, AccountCreate, AccountUpdate, DeviceResetData, CrawlerItem from model.model import GoodsInfo, DataReceive, AccountCreate, AccountUpdate, TokenItem, CrawlerItem
app = FastAPI() app = FastAPI()
app.middleware("http")(verify_tk_token) app.middleware("http")(verify_tk_token)
@ -184,19 +184,21 @@ async def get_goods_info(task_data: GoodsInfo, task_manager: Any = Depends(get_t
raise HTTPException(status_code=503, detail="抓取商品数据失败,请重新尝试") raise HTTPException(status_code=503, detail="抓取商品数据失败,请重新尝试")
@app.get("/device_reset", summary="设备重置") @app.post("/add_token", summary="设备重置")
async def device_reset(task_data: DeviceResetData, reset_manager: Any = Depends(get_reset_manager)): async def add_token(task_data: TokenItem, task_manager: Any = Depends(get_task_manager)):
"""设备重置接口""" """设备重置接口"""
try: try:
params = task_data.model_dump() params = task_data.model_dump()
# result = await reset_manager.task_distribution(params) result = task_manager.add_token(params.get("token"))
result = True print(result)
# result = True
if result: if result:
print(f"新增token:{params.get("token")} 成功")
return {"code": 200, "message": "<UNK>", "data": result} return {"code": 200, "message": "<UNK>", "data": result}
raise HTTPException(status_code=404, detail="抓取商品数据失败,请重新尝试") raise HTTPException(status_code=404, detail=f"新增token:{params.get("token")} 失败")
except Exception as e: except Exception as e:
print(f"设备重置失败,失败原因: {e}") print(f"新增token:{params.get("token")} 失败,失败原因: {e}")
raise HTTPException(status_code=500, detail="获取数据失败;失败原因{}".format(e)) raise HTTPException(status_code=500, detail=f"新增token失败失败原因{e}")
if __name__ == '__main__': if __name__ == '__main__':

View File

@ -32,10 +32,8 @@ class DataReceive(BaseModel):
goods_info: Dict[str, Any] = Field(..., description="商品信息") goods_info: Dict[str, Any] = Field(..., description="商品信息")
class DeviceResetData(BaseModel): class TokenItem(BaseModel):
device_id: str = Field(..., description="设备ID") token: str = Field(..., description="token")
region: str = Field(..., description="地区")
app_name: str = Field(..., description="应用名称")
class CrawlerItem(BaseModel): class CrawlerItem(BaseModel):

View File

@ -9,17 +9,19 @@ config_path = os.path.join(Path(__file__).resolve().parent, 'config.yaml')
config = read_config(config_path) config = read_config(config_path)
redis_conn = RedisTaskManager(config) redis_conn = RedisTaskManager(config)
TOKEN = "opB4ztbdw45xFoJbXti20520bsEq3UDKKAtiDWHnGjjhP6v0KNFjqBM7bfzto6GLdUPviYnVdCgdCJYqe42nPoy6mvW59F3TPQZu"
# TOKEN = "opB4ztbdw45xFoJbXti20520bsEq3UDKKAtiDWHnGjjhP6v0KNFjqBM7bfzto6GLdUPviYnVdCgdCJYqe42nPoy6mvW59F3TPQZu"
async def verify_tk_token(request: Request, call_next): async def verify_tk_token(request: Request, call_next):
"""鉴权中间件""" """鉴权中间件"""
path = request.scope["path"]
token = request.headers.get("token") token = request.headers.get("token")
if not redis_conn.check_field_exists('user_token', token): if path.endswith("token"):
return JSONResponse(status_code=401, content={"detail": "token 验证失败"}) if token != TOKEN:
return JSONResponse(status_code=401, content={"detail": "token 验证失败"})
else:
if not redis_conn.check_field_exists('user_token', token):
return JSONResponse(status_code=401, content={"detail": "token 验证失败"})
# if token != TOKEN: # if token != TOKEN:
# return JSONResponse(status_code=401, content={"detail": "token 验证失败"}) # return JSONResponse(status_code=401, content={"detail": "token 验证失败"})
return await call_next(request) return await call_next(request)

View File

@ -23,6 +23,20 @@ class AllTask:
return result return result
return None return None
def add_token(self, token) -> bool:
try:
return self.redis_conn.write_string_to_h_set("user_token", token, 1)
except Exception as e:
print(f"新增token{token}失败,s失败原因为{e}")
return False
def delete_token(self, token) -> bool:
try:
return self.redis_conn.write_string_to_h_set("user_token", token, 1)
except Exception as e:
print(f"新增token{token}失败,s失败原因为{e}")
return False
async def deal_shopee_task(self, param: Dict[str, Any]): async def deal_shopee_task(self, param: Dict[str, Any]):
""" """
处理Shopee任务的异步方法 处理Shopee任务的异步方法