#!/usr/bin/env python3 """ Script de configuration pour Scrap-Dji Initialise les bases de données et les services nécessaires """ import os import sys import subprocess from pathlib import Path def check_python_version(): """Vérifie la version de Python""" if sys.version_info < (3, 10): print("❌ Python 3.10+ requis") sys.exit(1) print("✅ Version Python OK") def install_dependencies(): """Installe les dépendances""" print("📦 Installation des dépendances...") try: subprocess.run([sys.executable, "-m", "pip", "install", "-r", "requirements.txt"], check=True) print("✅ Dépendances installées") except subprocess.CalledProcessError: print("❌ Erreur lors de l'installation des dépendances") sys.exit(1) def create_directories(): """Crée les répertoires nécessaires""" directories = [ "storage_data", "logs", "data", "temp" ] for directory in directories: Path(directory).mkdir(exist_ok=True) print(f"✅ Répertoire créé: {directory}") def setup_env_file(): """Configure le fichier .env""" if not os.path.exists(".env"): if os.path.exists("config.env.example"): os.system("copy config.env.example .env") print("✅ Fichier .env créé (à configurer)") else: print("⚠️ Créez un fichier .env basé sur config.env.example") else: print("✅ Fichier .env existe déjà") def init_databases(): """Initialise les bases de données""" print("🗄️ Initialisation des bases de données...") try: from db.postgres_connector import init_db init_db() print("✅ Base PostgreSQL initialisée") except Exception as e: print(f"⚠️ Erreur PostgreSQL: {e}") print(" Assurez-vous que PostgreSQL est installé et configuré") def check_services(): """Vérifie les services requis""" services = { "PostgreSQL": "postgresql://localhost:5432", "MongoDB": "mongodb://localhost:27017", "Typesense": "http://localhost:8108", "Qdrant": "http://localhost:6333" } print("🔍 Vérification des services...") for service, url in services.items(): try: # Vérification basique print(f" {service}: {'✅' if 'localhost' in url else '⚠️'}") except: print(f" {service}: ❌") def main(): print("🚀 Configuration de Scrap-Dji") print("=" * 40) check_python_version() install_dependencies() create_directories() setup_env_file() init_databases() check_services() print("\n" + "=" * 40) print("✅ Configuration terminée!") print("\n📋 Prochaines étapes:") print("1. Configurez le fichier .env avec vos paramètres") print("2. Installez et démarrez PostgreSQL, MongoDB, Typesense, Qdrant") print("3. Configurez vos sources dans sources.json") print("4. Lancez le scraping avec: python -m scraper.main") if __name__ == "__main__": main()