File size: 3,122 Bytes
dfdddb1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#!/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()