Files
novafarma/scripts/remove_targets.py
2026-01-20 17:22:42 +01:00

66 lines
1.9 KiB
Python

import os
import hashlib
import shutil
TARGET_DIR = os.path.abspath("assets/slike/glavna_referenca")
SAMPLE_DIR = os.path.abspath("_TRASH_SAMPLES")
TRASH_DIR = os.path.abspath("_TRASH_BIN/targeted_cleanup")
def get_file_hash(filepath):
hasher = hashlib.md5()
try:
with open(filepath, 'rb') as f:
buf = f.read(65536)
while len(buf) > 0:
hasher.update(buf)
buf = f.read(65536)
return hasher.hexdigest()
except:
return None
def main():
if not os.path.exists(SAMPLE_DIR):
print("❌ Sample directory missing.")
return
if not os.path.exists(TRASH_DIR):
os.makedirs(TRASH_DIR)
# 1. Get hashes of samples
print(f"🎯 analyzing samples in {SAMPLE_DIR}...")
target_hashes = set()
for f in os.listdir(SAMPLE_DIR):
if f.startswith("."): continue
h = get_file_hash(os.path.join(SAMPLE_DIR, f))
if h:
target_hashes.add(h)
print(f"🎯 Loaded {len(target_hashes)} unique target signatures.")
# 2. Scan and destroy
print(f"🔍 Scanning {TARGET_DIR} for matches...")
count = 0
matches = 0
for root, dirs, files in os.walk(TARGET_DIR):
for filename in files:
if filename.startswith("."): continue
filepath = os.path.join(root, filename)
file_hash = get_file_hash(filepath)
if file_hash in target_hashes:
# MATCH FOUND!
# print(f"💥 Destroying: {filename}")
shutil.move(filepath, os.path.join(TRASH_DIR, filename))
matches += 1
count += 1
if count % 1000 == 0:
print(f" Scanned {count} files...")
print(f"✨ DONE! Removed {matches} matching files to {TRASH_DIR}")
if __name__ == "__main__":
main()