81 lines
2.1 KiB
Dart
81 lines
2.1 KiB
Dart
import 'package:firebase_core/firebase_core.dart';
|
|
import 'package:firebase_storage/firebase_storage.dart';
|
|
|
|
void main() async {
|
|
|
|
try {
|
|
await Firebase.initializeApp();
|
|
|
|
final storage = FirebaseStorage.instance;
|
|
final ref = storage.ref().child('trip_images');
|
|
|
|
final result = await ref.listAll();
|
|
|
|
|
|
// Grouper les images par ville
|
|
Map<String, List<Reference>> imagesByCity = {};
|
|
|
|
for (var item in result.items) {
|
|
final name = item.name;
|
|
|
|
// Extraire la ville du nom de fichier
|
|
String city = 'unknown';
|
|
if (name.contains('_')) {
|
|
// Format: londres_timestamp.jpg ou london_timestamp.jpg
|
|
city = name.split('_')[0].toLowerCase();
|
|
}
|
|
|
|
if (!imagesByCity.containsKey(city)) {
|
|
imagesByCity[city] = [];
|
|
}
|
|
imagesByCity[city]!.add(item);
|
|
}
|
|
|
|
for (var entry in imagesByCity.entries) {
|
|
}
|
|
|
|
// Focus sur Londres/London
|
|
final londonImages = <Reference>[];
|
|
londonImages.addAll(imagesByCity['londres'] ?? []);
|
|
londonImages.addAll(imagesByCity['london'] ?? []);
|
|
|
|
|
|
if (londonImages.length > 1) {
|
|
|
|
// Trier par timestamp (garder la plus récente)
|
|
londonImages.sort((a, b) {
|
|
final timestampA = _extractTimestamp(a.name);
|
|
final timestampB = _extractTimestamp(b.name);
|
|
return timestampB.compareTo(timestampA); // Plus récent en premier
|
|
});
|
|
|
|
for (var image in londonImages) {
|
|
final timestamp = _extractTimestamp(image.name);
|
|
}
|
|
|
|
// Supprimer toutes sauf la première (plus récente)
|
|
for (int i = 1; i < londonImages.length; i++) {
|
|
await londonImages[i].delete();
|
|
}
|
|
|
|
} else {
|
|
}
|
|
|
|
|
|
} catch (e) {
|
|
}
|
|
}
|
|
|
|
int _extractTimestamp(String filename) {
|
|
try {
|
|
// Extraire le timestamp du nom de fichier
|
|
// Format: ville_timestamp.jpg
|
|
final parts = filename.split('_');
|
|
if (parts.length >= 2) {
|
|
final timestampPart = parts[1].split('.')[0]; // Enlever l'extension
|
|
return int.parse(timestampPart);
|
|
}
|
|
} catch (e) {
|
|
}
|
|
return 0; // Timestamp par défaut
|
|
} |