Files
Priceflow/run_cleanup.py
T

54 lines
1.5 KiB
Python

import sys
import os
import logging
from sqlalchemy.orm import Session
# Add project root to path
sys.path.append(os.getcwd())
from app.database import SessionLocal, engine
from app.models import Catalogue
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
def cleanup_catalogs():
db = SessionLocal()
try:
logger.info("Starting cleanup...")
deleted_count = 0
# 1. Delete catalogs with 0 pages
bad_catalogs = db.query(Catalogue).filter(Catalogue.nombre_pages == 0).all()
for cat in bad_catalogs:
logger.info(f"Deleting empty catalog: {cat.titre}")
db.delete(cat)
deleted_count += 1
# 2. Delete catalogs with iconic/bad images
all_catalogs = db.query(Catalogue).all()
for cat in all_catalogs:
if not cat.image_couverture_url:
continue
if any(
x in cat.image_couverture_url.lower()
for x in ["icon", "logo", "loader", "facebook", "twitter", "assets/img"]
):
logger.info(f"Deleting catalog with bad image: {cat.titre} ({cat.image_couverture_url})")
db.delete(cat)
deleted_count += 1
db.commit()
logger.info(f"Cleanup complete. Deleted {deleted_count} catalogs.")
except Exception as e:
logger.error(f"Error during cleanup: {e}")
finally:
db.close()
if __name__ == "__main__":
cleanup_catalogs()