97 lines
2.8 KiB
Python
97 lines
2.8 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
MASS VISUAL ANALYSIS & RENAME - VSE SLIKE V PROJEKTU
|
|
Sistem za sistematično preimenovanje VSEH slik glede na vizualno vsebino
|
|
"""
|
|
|
|
import os
|
|
import json
|
|
from pathlib import Path
|
|
from collections import defaultdict
|
|
|
|
PROJECT_ROOT = Path("/Users/davidkotnik/repos/novafarma")
|
|
|
|
def collect_all_images():
|
|
"""Zbere vse slike v projektu"""
|
|
images = []
|
|
|
|
# Ekstenzije
|
|
extensions = ['.png', '.jpg', '.jpeg']
|
|
|
|
# Išči vse slike
|
|
for ext in extensions:
|
|
for img in PROJECT_ROOT.rglob(f"*{ext}"):
|
|
# Preskoči node_modules, .git, backups
|
|
path_str = str(img)
|
|
if any(skip in path_str for skip in ['node_modules', '.git', 'gcloud auth']):
|
|
continue
|
|
images.append(img)
|
|
|
|
return images
|
|
|
|
def organize_by_folder(images):
|
|
"""Organizira slike po mapah"""
|
|
by_folder = defaultdict(list)
|
|
|
|
for img in images:
|
|
folder = img.parent.relative_to(PROJECT_ROOT)
|
|
by_folder[str(folder)].append(img)
|
|
|
|
return dict(by_folder)
|
|
|
|
def generate_inventory():
|
|
"""Generira inventory vseh slik"""
|
|
print("🔍 ZBIRAM VSE SLIKE V PROJEKTU...")
|
|
images = collect_all_images()
|
|
|
|
print(f"✅ NAJDENIH: {len(images)} slik")
|
|
|
|
print("\n📂 ORGANIZIRAM PO MAPAH...")
|
|
by_folder = organize_by_folder(images)
|
|
|
|
print(f"✅ MAPE: {len(by_folder)}")
|
|
|
|
# Kreiraj inventory
|
|
inventory = {
|
|
'total_images': len(images),
|
|
'total_folders': len(by_folder),
|
|
'folders': {}
|
|
}
|
|
|
|
for folder, imgs in sorted(by_folder.items()):
|
|
inventory['folders'][folder] = {
|
|
'count': len(imgs),
|
|
'images': [img.name for img in sorted(imgs)]
|
|
}
|
|
|
|
# Shrani inventory
|
|
inventory_file = PROJECT_ROOT / "image_inventory.json"
|
|
with open(inventory_file, 'w', encoding='utf-8') as f:
|
|
json.dump(inventory, f, indent=2, ensure_ascii=False)
|
|
|
|
print(f"\n✅ INVENTORY SHRANJEN: image_inventory.json")
|
|
|
|
# Izpiši preview
|
|
print("\n" + "=" * 80)
|
|
print("📊 TOP 20 MAP PO ŠTEVILU SLIK:")
|
|
print("=" * 80)
|
|
|
|
sorted_folders = sorted(by_folder.items(), key=lambda x: len(x[1]), reverse=True)
|
|
for i, (folder, imgs) in enumerate(sorted_folders[:20], 1):
|
|
print(f"{i:2d}. {folder:60s} → {len(imgs):4d} slik")
|
|
|
|
print("\n" + "=" * 80)
|
|
print(f"SKUPAJ: {len(images)} slik v {len(by_folder)} mapah")
|
|
print("=" * 80)
|
|
|
|
return inventory
|
|
|
|
if __name__ == "__main__":
|
|
inventory = generate_inventory()
|
|
|
|
print("\n📝 NASLEDNJI KORAK:")
|
|
print(" 1. Preglej image_inventory.json")
|
|
print(" 2. Za vsako mapo bom vizualno analiziral slike")
|
|
print(" 3. Preimenoval bom vse v preprosta slovenska imena")
|
|
print("\n⏳ To bo trajalo - mas 9000+ slik!")
|