import os import shutil import re # Handle the space in folder name - finding it dynamically ROOT = "assets/slike" REF_DIR_NAME = None for d in os.listdir(ROOT): if "referen" in d.lower(): REF_DIR_NAME = d break if not REF_DIR_NAME: print("❌ Could not find reference folder!") exit() TARGET_DIR = os.path.join(ROOT, REF_DIR_NAME) # COMBINED RULES RULES = [ # ANIMATIONS / ZOMBIES (r"(miner|rudar)", "Zombiji/Rudar"), (r"(spitter|pljuvalec)", "Zombiji/Pljuvalec"), (r"(boss|velikan)", "Zombiji/Boss"), (r"(zombie|undead|tekac|plazilec|weak|navaden)", "Zombiji/Ostalo"), # ANIMALS (r"(rabbit|zajec|sheep|ovca|chicken|kokos|kokoš|pig|prašič|cow|krava|animal|žival)", "Zivali"), # LIKI (r"(kai)", "Liki/Kai"), (r"(ana)", "Liki/Ana"), (r"(gronk)", "Liki/Gronk"), (r"(npc|druid|witch|farmer|baker|priest|guide|merchant|trader)", "Liki/NPCs"), # TEREN (r"(tree|bush|flower|plant|rastlina|drevo)", "Teren/Rastline"), (r"(grass|ground|soil|dirt|sand|tileset|trava|zemlja)", "Teren/Tla"), (r"(water|voda|river|lake)", "Teren/Voda"), (r"(stone|rock|kamen|skala)", "Teren/Kamni"), (r"(house|building|wall|ruin|fence|zgradba|his|hiš)", "Teren/Zgradbe"), (r"(prop|lamp|sign|cart)", "Teren/Props"), # PREDMETI (r"(tool|axe|pickaxe|hoe|watering|orodje|kramp|sekira)", "Predmeti/Orodje"), (r"(weapon|sword|bow|arrow|gun|rifle|orozje|meč)", "Predmeti/Orozje"), (r"(seed|seme|food|crop|fruit|veg|hrana|pridelek)", "Predmeti/Hrana_Semena"), (r"(resource|wood|plank|ore|gem|gold|surovina|item)", "Predmeti/Surovine"), # Default fallbacks (r".*", "Nerazvrsceno") ] def organize_refs(): print(f"🚀 ORGANIZING REFERENCES in '{TARGET_DIR}'...") count = 0 files = [f for f in os.listdir(TARGET_DIR) if os.path.isfile(os.path.join(TARGET_DIR, f))] for filename in files: if not filename.lower().endswith(('.png', '.jpg', '.jpeg')): continue fname_lower = filename.lower() target_sub = "Nerazvrsceno" for pattern, folder in RULES: if re.search(pattern, fname_lower): target_sub = folder break dest_dir = os.path.join(TARGET_DIR, target_sub) if not os.path.exists(dest_dir): os.makedirs(dest_dir) src = os.path.join(TARGET_DIR, filename) dst = os.path.join(dest_dir, filename) try: shutil.move(src, dst) count += 1 except Exception as e: print(f"Error {filename}: {e}") print("="*40) print(f"✅ REFERENCES ORGANIZED. Moved {count} files.") print("="*40) if __name__ == "__main__": organize_refs()