Files
novafarma/organize_refs.py

93 lines
2.7 KiB
Python

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()