Remove the prints
This commit is contained in:
@@ -4,8 +4,6 @@ import '../lib/services/trip_image_service.dart';
|
||||
/// Script utilitaire pour nettoyer les images inutilisées
|
||||
/// À exécuter manuellement si nécessaire
|
||||
void main() async {
|
||||
print('🧹 Script de nettoyage des images inutilisées');
|
||||
print('=====================================');
|
||||
|
||||
try {
|
||||
final tripImageService = TripImageService();
|
||||
@@ -15,36 +13,21 @@ void main() async {
|
||||
const userId = 'YOUR_USER_ID_HERE';
|
||||
|
||||
if (userId == 'YOUR_USER_ID_HERE') {
|
||||
print('❌ Veuillez configurer votre userId dans le script');
|
||||
print(' Récupérez votre ID depuis Firebase Auth dans l\'app');
|
||||
return;
|
||||
}
|
||||
|
||||
print('📊 Récupération des statistiques...');
|
||||
final stats = await tripImageService.getImageStatistics(userId);
|
||||
|
||||
print('Statistiques actuelles:');
|
||||
print('- Voyages totaux: ${stats['totalTrips']}');
|
||||
print('- Voyages avec image: ${stats['tripsWithImages']}');
|
||||
print('- Voyages sans image: ${stats['tripsWithoutImages']}');
|
||||
|
||||
if (stats['tripsWithImages'] > 0) {
|
||||
print('\n🧹 Nettoyage des images inutilisées...');
|
||||
await tripImageService.cleanupUnusedImages(userId);
|
||||
|
||||
print('\n📊 Nouvelles statistiques...');
|
||||
final newStats = await tripImageService.getImageStatistics(userId);
|
||||
print('- Voyages totaux: ${newStats['totalTrips']}');
|
||||
print('- Voyages avec image: ${newStats['tripsWithImages']}');
|
||||
print('- Voyages sans image: ${newStats['tripsWithoutImages']}');
|
||||
} else {
|
||||
print('✅ Aucune image à nettoyer');
|
||||
}
|
||||
|
||||
print('\n✅ Script terminé avec succès');
|
||||
|
||||
} catch (e) {
|
||||
print('❌ Erreur lors du nettoyage: $e');
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,8 +5,6 @@ import '../lib/firebase_options.dart';
|
||||
|
||||
/// Script pour nettoyer les doublons d'images de Londres
|
||||
void main() async {
|
||||
print('🧹 Nettoyage spécifique des doublons d\'images de Londres');
|
||||
print('========================================================');
|
||||
|
||||
try {
|
||||
// Initialiser Firebase
|
||||
@@ -14,20 +12,13 @@ void main() async {
|
||||
options: DefaultFirebaseOptions.currentPlatform,
|
||||
);
|
||||
|
||||
print('✅ Firebase initialisé');
|
||||
|
||||
final tripImageService = TripImageService();
|
||||
|
||||
print('🔍 Analyse et nettoyage des doublons...');
|
||||
await tripImageService.cleanupDuplicateImages();
|
||||
|
||||
print('✅ Nettoyage terminé !');
|
||||
print('');
|
||||
print('🎯 Les doublons pour Londres (et autres destinations) ont été supprimés');
|
||||
print(' Seule l\'image la plus récente pour chaque destination a été conservée');
|
||||
|
||||
} catch (e) {
|
||||
print('❌ Erreur lors du nettoyage: $e');
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,8 +4,6 @@ import '../lib/firebase_options.dart';
|
||||
|
||||
/// Script de diagnostic pour analyser les images dans Firebase Storage
|
||||
void main() async {
|
||||
print('🔍 Diagnostic des images Firebase Storage');
|
||||
print('=========================================');
|
||||
|
||||
try {
|
||||
// Initialiser Firebase
|
||||
@@ -15,16 +13,12 @@ void main() async {
|
||||
|
||||
final storage = FirebaseStorage.instance;
|
||||
|
||||
print('📂 Analyse du dossier trip_images...');
|
||||
final listResult = await storage.ref('trip_images').listAll();
|
||||
|
||||
if (listResult.items.isEmpty) {
|
||||
print('❌ Aucune image trouvée dans trip_images/');
|
||||
return;
|
||||
}
|
||||
|
||||
print('📊 ${listResult.items.length} image(s) trouvée(s):');
|
||||
print('');
|
||||
|
||||
final Map<String, List<Map<String, dynamic>>> locationGroups = {};
|
||||
|
||||
@@ -32,7 +26,6 @@ void main() async {
|
||||
final item = listResult.items[i];
|
||||
final fileName = item.name;
|
||||
|
||||
print('${i + 1}. Fichier: $fileName');
|
||||
|
||||
try {
|
||||
// Récupérer les métadonnées
|
||||
@@ -44,14 +37,9 @@ void main() async {
|
||||
final source = customMeta['source'] ?? 'Inconnue';
|
||||
final uploadedAt = customMeta['uploadedAt'] ?? 'Inconnue';
|
||||
|
||||
print(' 📍 Location: $location');
|
||||
print(' 🏷️ Normalized: $normalizedLocation');
|
||||
print(' 📤 Source: $source');
|
||||
print(' 📅 Upload: $uploadedAt');
|
||||
|
||||
// Récupérer l'URL de téléchargement
|
||||
final downloadUrl = await item.getDownloadURL();
|
||||
print(' 🔗 URL: $downloadUrl');
|
||||
|
||||
// Grouper par location normalisée
|
||||
final groupKey = normalizedLocation != 'Non définie' ? normalizedLocation : location.toLowerCase();
|
||||
@@ -67,13 +55,11 @@ void main() async {
|
||||
});
|
||||
|
||||
} catch (e) {
|
||||
print(' ❌ Erreur lecture métadonnées: $e');
|
||||
|
||||
// Essayer de deviner la location depuis le nom du fichier
|
||||
final parts = fileName.split('_');
|
||||
if (parts.length >= 2) {
|
||||
final guessedLocation = parts.take(parts.length - 1).join('_');
|
||||
print(' 🤔 Location devinée: $guessedLocation');
|
||||
|
||||
if (!locationGroups.containsKey(guessedLocation)) {
|
||||
locationGroups[guessedLocation] = [];
|
||||
@@ -88,12 +74,9 @@ void main() async {
|
||||
}
|
||||
}
|
||||
|
||||
print('');
|
||||
}
|
||||
|
||||
// Analyser les doublons
|
||||
print('🔍 Analyse des doublons par location:');
|
||||
print('====================================');
|
||||
|
||||
int totalDuplicates = 0;
|
||||
for (final entry in locationGroups.entries) {
|
||||
@@ -101,31 +84,19 @@ void main() async {
|
||||
final images = entry.value;
|
||||
|
||||
if (images.length > 1) {
|
||||
print('⚠️ DOUBLONS détectés pour "$location": ${images.length} images');
|
||||
totalDuplicates += images.length - 1;
|
||||
|
||||
for (int i = 0; i < images.length; i++) {
|
||||
final image = images[i];
|
||||
print(' ${i + 1}. ${image['fileName']} (${image['uploadedAt']})');
|
||||
}
|
||||
print('');
|
||||
} else {
|
||||
print('✅ "$location": 1 image (OK)');
|
||||
}
|
||||
}
|
||||
|
||||
print('📈 Résumé:');
|
||||
print('- Total images: ${listResult.items.length}');
|
||||
print('- Locations uniques: ${locationGroups.length}');
|
||||
print('- Images en doublon: $totalDuplicates');
|
||||
print('- Économie possible: ${totalDuplicates} images peuvent être supprimées');
|
||||
|
||||
if (totalDuplicates > 0) {
|
||||
print('');
|
||||
print('💡 Suggestion: Utilisez la fonctionnalité de nettoyage pour supprimer les doublons');
|
||||
}
|
||||
|
||||
} catch (e) {
|
||||
print('❌ Erreur lors du diagnostic: $e');
|
||||
}
|
||||
}
|
||||
@@ -2,26 +2,21 @@ import 'package:firebase_core/firebase_core.dart';
|
||||
import 'package:firebase_storage/firebase_storage.dart';
|
||||
|
||||
void main() async {
|
||||
print("🧹 Début du nettoyage des doublons Londres...");
|
||||
|
||||
try {
|
||||
await Firebase.initializeApp();
|
||||
print("✅ Firebase initialisé");
|
||||
|
||||
final storage = FirebaseStorage.instance;
|
||||
final ref = storage.ref().child('trip_images');
|
||||
|
||||
print("📋 Récupération de la liste des images...");
|
||||
final result = await ref.listAll();
|
||||
|
||||
print("📊 Nombre total d'images: ${result.items.length}");
|
||||
|
||||
// Grouper les images par ville
|
||||
Map<String, List<Reference>> imagesByCity = {};
|
||||
|
||||
for (var item in result.items) {
|
||||
final name = item.name;
|
||||
print("🖼️ Image trouvée: $name");
|
||||
|
||||
// Extraire la ville du nom de fichier
|
||||
String city = 'unknown';
|
||||
@@ -36,9 +31,7 @@ void main() async {
|
||||
imagesByCity[city]!.add(item);
|
||||
}
|
||||
|
||||
print("\n📍 Images par ville:");
|
||||
for (var entry in imagesByCity.entries) {
|
||||
print(" ${entry.key}: ${entry.value.length} image(s)");
|
||||
}
|
||||
|
||||
// Focus sur Londres/London
|
||||
@@ -46,10 +39,8 @@ void main() async {
|
||||
londonImages.addAll(imagesByCity['londres'] ?? []);
|
||||
londonImages.addAll(imagesByCity['london'] ?? []);
|
||||
|
||||
print("\n🏴 Images de Londres trouvées: ${londonImages.length}");
|
||||
|
||||
if (londonImages.length > 1) {
|
||||
print("🔄 Suppression des doublons...");
|
||||
|
||||
// Trier par timestamp (garder la plus récente)
|
||||
londonImages.sort((a, b) {
|
||||
@@ -58,27 +49,20 @@ void main() async {
|
||||
return timestampB.compareTo(timestampA); // Plus récent en premier
|
||||
});
|
||||
|
||||
print("📅 Images triées par timestamp:");
|
||||
for (var image in londonImages) {
|
||||
final timestamp = _extractTimestamp(image.name);
|
||||
print(" ${image.name} - $timestamp");
|
||||
}
|
||||
|
||||
// Supprimer toutes sauf la première (plus récente)
|
||||
for (int i = 1; i < londonImages.length; i++) {
|
||||
print("🗑️ Suppression: ${londonImages[i].name}");
|
||||
await londonImages[i].delete();
|
||||
}
|
||||
|
||||
print("✅ Suppression terminée. Image conservée: ${londonImages[0].name}");
|
||||
} else {
|
||||
print("ℹ️ Aucun doublon trouvé pour Londres");
|
||||
}
|
||||
|
||||
print("\n🎉 Nettoyage terminé !");
|
||||
|
||||
} catch (e) {
|
||||
print("❌ Erreur: $e");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -92,7 +76,6 @@ int _extractTimestamp(String filename) {
|
||||
return int.parse(timestampPart);
|
||||
}
|
||||
} catch (e) {
|
||||
print("⚠️ Impossible d'extraire le timestamp de $filename");
|
||||
}
|
||||
return 0; // Timestamp par défaut
|
||||
}
|
||||
Reference in New Issue
Block a user