""" mark_torrents_unwanted.py — Označí celé Tower/Torrents a Tower1/Torrents jako nechceme (stažený torrent obsah: komiksy, vystřihovánky, speleologie, porno, textury...). Žádné rodinné originály (ověřeno pixel-hashem + adresáři). wanted=FALSE, category='Odpad-torrent' Idempotentní + jedna session, autocommit (žádné paralelní běhy → bez deadlocku). """ import sys import psycopg2 sys.stdout.reconfigure(encoding="utf-8") DB = dict(host="192.168.1.76", port=5432, user="vladimir.buzalka", password="Vlado7309208104++", database="fotky_buzalkovi") DIRS = [ ("Tower/Torrents", "/mnt/user/ZalohaVsechObrazku/Tower/Torrents%"), ("Tower1/Torrents", "/mnt/user/ZalohaVsechObrazku/Tower1/Torrents%"), ] conn = psycopg2.connect(**DB) conn.set_isolation_level(psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT) cur = conn.cursor() total = 0 for popis, like in DIRS: cur.execute(""" UPDATE photos p SET wanted = FALSE, category = 'Odpad-torrent' FROM zaloha_obrazku z WHERE p.zaloha_id = z.id AND z.cesta_zalohy LIKE %s AND p.category IS DISTINCT FROM 'Odpad-torrent' """, (like,)) print(f" {popis}: {cur.rowcount:,} řádků") total += cur.rowcount print(f"\nHotovo. Celkem: {total:,} řádků → wanted=FALSE, category='Odpad-torrent'") conn.close()