Jelajahi Sumber

前缀修改

AnlaAnla 2 minggu lalu
induk
melakukan
ded27fa9aa
2 mengubah file dengan 88 tambahan dan 30 penghapusan
  1. 70 12
      Test/test01.py
  2. 18 18
      app/api/auto_import.py

+ 70 - 12
Test/test01.py

@@ -1,16 +1,74 @@
+import requests
 import os
-from pathlib import Path
+from datetime import datetime
 
-if __name__ == '__main__':
-    data_dir = r"C:\Code\ML\Image\Card\tesmp"
-    data_dir = Path(data_dir)
+# --- 配置区域 ---
+# 替换为你的存储服务端实际地址和端口
+SERVER_URL = "http://127.0.0.1:7755"
+API_ENDPOINT = f"{SERVER_URL}/api/import/process_and_import"
 
-    for filename in data_dir.iterdir():
-        split_text = "f"
-        if split_text in filename.name:
-            img_nun = int(filename.stem.split(split_text)[1])
-            new_name = str(img_nun) + "_front_ring" + ".jpg"
-            new_path = data_dir / new_name
-            filename.rename(new_path)
 
-    print('end')
+def import_card(
+        card_name: str,
+        cardNo: str,
+        card_type: str,
+        is_reflect_card: bool,
+        strict_mode: bool,
+        paths: dict
+):
+    """
+    请求后端的自动导入接口
+    """
+    # 构造请求的 JSON Payload
+    payload = {
+        "card_name": card_name,
+        "cardNo": cardNo,
+        "card_type": card_type,
+        "is_reflect_card": is_reflect_card,
+        "strict_mode": strict_mode,
+        "path_front_ring": paths.get("front_ring"),
+        "path_front_coaxial": paths.get("front_coaxial"),
+        "path_back_ring": paths.get("back_ring"),
+        "path_back_coaxial": paths.get("back_coaxial"),
+        "path_front_gray": paths.get("front_gray"),
+        "path_back_gray": paths.get("back_gray")
+    }
+
+    print(payload)
+
+
+if __name__ == "__main__":
+    # --- 测试配置 ---
+    BASE_PATH = r"C:\Code\ML\Image\Card\img20_test"
+    IS_REFLECT = True
+    CARD_TYPE = "pokemon"
+
+    # 模拟循环处理 (类似你原来的逻辑)
+    for img_num in range(2, 3):  # 测试 1 到 3
+        print(f"\n>>>>> 准备处理图片组: {img_num}")
+
+        # 构造卡牌信息
+        timestamp = datetime.now().strftime('%m%d_%H%M%S')
+        card_name = f"API测试卡_{img_num}_{timestamp}"
+        cardNo = f"SN-TEST-{img_num:03d}"
+
+        # 构造路径字典 (根据你的实际命名规则修改)
+        # 注意:我在 back_ring 的地方复用了你之前脚本里硬编码的路径作为示例
+        image_paths = {
+            "front_coaxial": os.path.join(BASE_PATH, f"{img_num}_front_coaxial.jpg"),
+            "front_ring": os.path.join(BASE_PATH, f"{img_num}_front_ring.jpg"),
+            "back_coaxial": os.path.join(BASE_PATH, f"{img_num}_back_coaxial.jpg"),
+            "back_ring": r"C:\Code\ML\Image\Card\b2.jpg",  # 你原脚本中的硬编码测试路径
+            "front_gray": os.path.join(BASE_PATH, f"{img_num}_front_gray.jpg"),
+            "back_gray": os.path.join(BASE_PATH, f"{img_num}_back_gray.jpg")
+        }
+
+        # 调用封装的函数发送 HTTP 请求
+        import_card(
+            card_name=card_name,
+            cardNo=cardNo,
+            card_type=CARD_TYPE,
+            is_reflect_card=IS_REFLECT,
+            strict_mode=True,  # 严格模式:如果缺主图,服务端会直接拦截报错
+            paths=image_paths
+        )

+ 18 - 18
app/api/auto_import.py

@@ -23,12 +23,12 @@ class AutoImportRequest(BaseModel):
     is_reflect_card: bool = Field(True, description="是否是反光卡")
     strict_mode: bool = Field(False, description="如果为True,必须提供所有4张主图")
 
-    path_front_ring: Optional[str] = Field(None, description="正面环光图绝对路径")
-    path_front_coaxial: Optional[str] = Field(None, description="正面同轴光图绝对路径")
-    path_back_ring: Optional[str] = Field(None, description="背面环光图绝对路径")
-    path_back_coaxial: Optional[str] = Field(None, description="背面同轴光图绝对路径")
-    path_front_gray: Optional[str] = Field(None, description="正面灰度图绝对路径")
-    path_back_gray: Optional[str] = Field(None, description="背面灰度图绝对路径")
+    front_ring: Optional[str] = Field(None, description="正面环光图绝对路径")
+    front_coaxial: Optional[str] = Field(None, description="正面同轴光图绝对路径")
+    back_ring: Optional[str] = Field(None, description="背面环光图绝对路径")
+    back_coaxial: Optional[str] = Field(None, description="背面同轴光图绝对路径")
+    front_gray: Optional[str] = Field(None, description="正面灰度图绝对路径")
+    back_gray: Optional[str] = Field(None, description="背面灰度图绝对路径")
 
 
 # --- 内部辅助函数 ---
@@ -172,25 +172,25 @@ async def auto_import_script_api(request: Request, req_data: AutoImportRequest):
     card_type: 卡牌类型
     is_reflect_card: 是否是反光卡
     strict_mode: 如果为True,必须提供所有4张主图
-    path_front_ring: 正面环光图绝对路径
-    path_front_coaxial: 正面同轴光图绝对路径
-    path_back_ring: 背面环光图绝对路径
-    path_back_coaxial: 背面同轴光图绝对路径
-    path_front_gray: 正面灰度图绝对路径
-    path_back_gray: 背面灰度图绝对路径
+    front_ring: 正面环光图绝对路径
+    front_coaxial: 正面同轴光图绝对路径
+    back_ring: 背面环光图绝对路径
+    back_coaxial: 背面同轴光图绝对路径
+    front_gray: 正面灰度图绝对路径
+    back_gray: 背面灰度图绝对路径
     """
     # 动态获取当前服务的 base_url (例如 http://127.0.0.1:7755)
     local_base_url = str(request.base_url).rstrip('/')
 
     main_inputs = {
-        "front_ring": req_data.path_front_ring,
-        "front_coaxial": req_data.path_front_coaxial,
-        "back_ring": req_data.path_back_ring,
-        "back_coaxial": req_data.path_back_coaxial
+        "front_ring": req_data.front_ring,
+        "front_coaxial": req_data.front_coaxial,
+        "back_ring": req_data.back_ring,
+        "back_coaxial": req_data.back_coaxial
     }
     gray_inputs = {
-        "front_gray": req_data.path_front_gray,
-        "back_gray": req_data.path_back_gray
+        "front_gray": req_data.front_gray,
+        "back_gray": req_data.back_gray
     }
 
     # 1. 严格模式与路径检查