ok
This commit is contained in:
92
scripts/organize_refs.py
Normal file
92
scripts/organize_refs.py
Normal file
@@ -0,0 +1,92 @@
|
||||
|
||||
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()
|
||||
Reference in New Issue
Block a user