update lại thư mục cấu trúc mới của server nodejs và python
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
from fastapi import FastAPI, HTTPException
|
||||
from pydantic import BaseModel, Field
|
||||
from automation import ShopeeBot
|
||||
from typing import Optional
|
||||
import logging
|
||||
import os
|
||||
|
||||
app = FastAPI(title="n8n Shopee Bridge API")
|
||||
|
||||
class CommissionRequest(BaseModel):
|
||||
link: str
|
||||
# Cho phép truyền IP linh hoạt từ n8n.
|
||||
device_ip: Optional[str] = Field(default=None, description="IP:Port của điện thoại, ví dụ 192.168.1.100:5555 (WiFi) hoặc 10.8.0.5:5555 (VPN)")
|
||||
|
||||
@app.post("/get_commission")
|
||||
async def get_commission_endpoint(req: CommissionRequest):
|
||||
if not req.link:
|
||||
raise HTTPException(status_code=400, detail="Thiếu link sản phẩm")
|
||||
|
||||
try:
|
||||
# Lấy IP theo độ ưu tiên:
|
||||
# 1. Truyền từ Request Body của n8n
|
||||
# 2. Truyền từ biến môi trường DEVICE_IP của Armbian/Windows
|
||||
# 3. Để rỗng "" (Thư viện u2 sẽ tự tìm thiết bị ADB đang cắm/connect)
|
||||
target_ip = req.device_ip or os.environ.get("DEVICE_IP") or ""
|
||||
|
||||
bot = ShopeeBot(device_ip=target_ip)
|
||||
|
||||
result = bot.get_commission(req.link)
|
||||
|
||||
return {
|
||||
"status": "success",
|
||||
"link": req.link,
|
||||
"commission": result,
|
||||
"connected_ip": target_ip if target_ip else "auto-detect"
|
||||
}
|
||||
except Exception as e:
|
||||
logging.error(f"Lỗi API: {str(e)}")
|
||||
raise HTTPException(status_code=500, detail=str(e))
|
||||
|
||||
if __name__ == "__main__":
|
||||
import uvicorn
|
||||
# Chạy server API ở cổng 8000
|
||||
uvicorn.run(app, host="0.0.0.0", port=8000)
|
||||
Reference in New Issue
Block a user