Some checks failed
CD Pipeline / deploy (push) Failing after 59s
- 建立 Gitea Actions CD pipeline (.gitea/workflows/cd.yaml) - 部署模式: rsync Python 檔案至 188 → docker restart (volume mount) - Dockerfile/requirements 變動時自動重建 Docker image - 部署通知: Telegram (開始/成功/失敗) - 健康檢查: https://mo.wooo.work/health (最多 5 次重試) - 同步最新 CLAUDE.md / ADR-008 / memory (2026-04-19) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
60 lines
2.0 KiB
Python
60 lines
2.0 KiB
Python
import os
|
|
import sys
|
|
from sqlalchemy import create_engine
|
|
from sqlalchemy.orm import sessionmaker
|
|
|
|
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
|
|
sys.path.insert(0, BASE_DIR)
|
|
from database.models import Product
|
|
|
|
DB_PATH = os.path.join(BASE_DIR, 'data', 'momo_database.db')
|
|
engine = create_engine(f'sqlite:///{DB_PATH}')
|
|
Session = sessionmaker(bind=engine)
|
|
session = Session()
|
|
|
|
# 讀取需要修復的商品清單
|
|
with open('incorrect_images.txt', 'r') as f:
|
|
i_codes = [line.strip() for line in f if line.strip()]
|
|
|
|
print(f"🔍 分析剩餘 {len(i_codes)} 個錯誤商品...\n")
|
|
|
|
# 分析圖片 URL 格式
|
|
old_format = 0 # img2.momoshop.com.tw
|
|
og_format_wrong = 0 # og.momoshop.com.tw 但 i_code 不對
|
|
no_image = 0
|
|
|
|
old_format_list = []
|
|
og_wrong_list = []
|
|
|
|
for i_code in i_codes[:100]: # 只檢查前 100 個
|
|
product = session.query(Product).filter(Product.i_code == i_code).first()
|
|
if product:
|
|
if not product.image_url:
|
|
no_image += 1
|
|
elif 'img' in product.image_url and 'momoshop.com.tw/ecm/img/online' in product.image_url:
|
|
old_format += 1
|
|
old_format_list.append(i_code)
|
|
elif 'og.momoshop.com.tw' in product.image_url:
|
|
og_format_wrong += 1
|
|
og_wrong_list.append(i_code)
|
|
|
|
print(f"📊 前 100 個商品分析:")
|
|
print(f" 舊格式 (img2.momoshop...): {old_format}")
|
|
print(f" 新格式但 i_code 錯誤: {og_format_wrong}")
|
|
print(f" 無圖片: {no_image}")
|
|
|
|
print(f"\n舊格式商品範例 (前 10 個):")
|
|
for i_code in old_format_list[:10]:
|
|
product = session.query(Product).filter(Product.i_code == i_code).first()
|
|
print(f" [{i_code}] {product.name[:40]}...")
|
|
print(f" {product.image_url[:80]}...")
|
|
|
|
if og_wrong_list:
|
|
print(f"\n新格式但 i_code 錯誤的商品範例 (前 5 個):")
|
|
for i_code in og_wrong_list[:5]:
|
|
product = session.query(Product).filter(Product.i_code == i_code).first()
|
|
print(f" [{i_code}] {product.name[:40]}...")
|
|
print(f" {product.image_url}")
|
|
|
|
session.close()
|