93 lines
2.7 KiB
Python
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()
|