Files
ewoooc/scripts/archive/fix_specific_products.py
ogt 1b4f3a7bbe
Some checks failed
CD Pipeline / deploy (push) Failing after 59s
feat: EwoooC 初始化 — 完整專案推版至 Gitea
- 建立 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>
2026-04-19 01:21:13 +08:00

61 lines
1.8 KiB
Python

import os
import sys
import time
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
from utils.image_url_builder import get_product_image_url
# 資料庫路徑
DB_PATH = os.path.join(BASE_DIR, 'data', 'momo_database.db')
engine = create_engine(f'sqlite:///{DB_PATH}')
Session = sessionmaker(bind=engine)
session = Session()
# 指定的商品編號
i_codes = ['14672839', '9216349', '13261678', '6676895', '13240823', '13240822', '10911080', '3876337', '8863611']
print("🔧 修復指定商品的圖片 URL:\n")
print("=" * 100)
success_count = 0
fail_count = 0
for i, i_code in enumerate(i_codes, 1):
product = session.query(Product).filter(Product.i_code == i_code).first()
if product:
print(f"\n[{i}/{len(i_codes)}] 處理: [{i_code}] {product.name[:50]}...")
print(f" ❌ 舊圖片: {product.image_url}")
# 獲取新的圖片 URL
new_image_url = get_product_image_url(i_code)
if new_image_url:
product.image_url = new_image_url
session.commit()
print(f" ✅ 更新: {new_image_url}")
success_count += 1
else:
print(f" ⚠️ 無法獲取圖片(可能已下架或不存在)")
fail_count += 1
# 延遲避免請求過快
if i < len(i_codes):
time.sleep(0.5)
else:
print(f"\n[{i}/{len(i_codes)}] ⚠️ 找不到商品: [{i_code}]")
fail_count += 1
print("\n" + "=" * 100)
print(f"\n📊 修復結果:")
print(f" ✅ 成功: {success_count}")
print(f" ❌ 失敗: {fail_count}")
print(f" 總計: {len(i_codes)}")
session.close()