77 lines
2.7 KiB
Python
77 lines
2.7 KiB
Python
import os
|
|
import shutil
|
|
|
|
ROOT_DIR = os.path.abspath("assets/slike/glavna_referenca")
|
|
NPC_DIR = os.path.join(ROOT_DIR, "NPC_CHARACTERS")
|
|
BUILD_DIR = os.path.join(ROOT_DIR, "BUILDINGS")
|
|
|
|
# Keywords for NPC/Characters
|
|
KEYW_NPC = [
|
|
"kai", "ana", "gronk", "susi", "player", "liki", "hero", # Main
|
|
"npc", "zombie", "skeleton", "enemy", "boss", "mob", # Enemies
|
|
"villager", "trader", "merchant", "blacksmith", # Town NPCs
|
|
"baker", "scientist", "priest", "druid", "witch", # Special NPCs
|
|
"hunter", "guide", "mayor", "doctor", "soldier",
|
|
"character", "person", "human", "face", "portrait"
|
|
]
|
|
|
|
# Keywords for Buildings
|
|
KEYW_BUILD = [
|
|
"house", "home", "hut", "tent", "cabin", "shack", # Residential
|
|
"shop", "market", "store", "inn", "tavern", # Commercial
|
|
"barn", "shed", "farmhouse", "silo", "mill", # Farm
|
|
"castle", "tower", "fort", "wall", "gate", # Defense
|
|
"ruin", "temple", "shrine", "monument", # Structures
|
|
"building", "structure", "architecture", "gradnja",
|
|
"objekti", "furniture", "bed", "table" # Interior/Furniture often goes with building
|
|
]
|
|
|
|
def organize_strict():
|
|
if not os.path.exists(ROOT_DIR):
|
|
return
|
|
|
|
for d in [NPC_DIR, BUILD_DIR]:
|
|
if not os.path.exists(d):
|
|
os.makedirs(d)
|
|
|
|
print(f"📦 Organizing into NPC_CHARACTERS and BUILDINGS...")
|
|
|
|
count_npc = 0
|
|
count_build = 0
|
|
|
|
for filename in os.listdir(ROOT_DIR):
|
|
if filename.startswith("."): continue
|
|
if os.path.isdir(os.path.join(ROOT_DIR, filename)): continue # Skip directories
|
|
|
|
src = os.path.join(ROOT_DIR, filename)
|
|
lower = filename.lower()
|
|
dest_folder = None
|
|
|
|
# Priority 1: Characters
|
|
if any(k in lower for k in KEYW_NPC):
|
|
dest_folder = NPC_DIR
|
|
count_npc += 1
|
|
# Priority 2: Buildings
|
|
elif any(k in lower for k in KEYW_BUILD):
|
|
dest_folder = BUILD_DIR
|
|
count_build += 1
|
|
|
|
if dest_folder:
|
|
dest = os.path.join(dest_folder, filename)
|
|
# Handle duplicates
|
|
if os.path.exists(dest):
|
|
base, ext = os.path.splitext(filename)
|
|
c = 1
|
|
while os.path.exists(os.path.join(dest_folder, f"{base}_{c}{ext}")):
|
|
c += 1
|
|
dest = os.path.join(dest_folder, f"{base}_{c}{ext}")
|
|
|
|
shutil.move(src, dest)
|
|
|
|
print(f"✨ DONE!")
|
|
print(f"👤 NPC/CHARACTERS: Moved {count_npc} images")
|
|
print(f"🏠 BUILDINGS: Moved {count_build} images")
|
|
|
|
if __name__ == "__main__":
|
|
organize_strict()
|