notebookVb
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
"""
|
||||
mark_cache_unwanted.py — Označí celé adresáře Tower/appdata a Tower/Sabnzbd
|
||||
jako nechceme (cache PhotoPrism/Immich + usenet download cache).
|
||||
|
||||
wanted=FALSE, category='Odpad-cache'
|
||||
|
||||
Idempotentní: díky filtru `category IS DISTINCT FROM 'Odpad-cache'` přepíše
|
||||
jen řádky, které ještě nejsou označené (vč. těch, co camera-rules omylem
|
||||
označily jako Rodina — jde o duplicitní cache kopie, ne originály).
|
||||
|
||||
Jediná DB session, autocommit — žádné paralelní běhy (deadlock).
|
||||
"""
|
||||
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/appdata (PhotoPrism/Immich cache)",
|
||||
"/mnt/user/ZalohaVsechObrazku/Tower/appdata%"),
|
||||
("Tower/Sabnzbd (usenet download cache)",
|
||||
"/mnt/user/ZalohaVsechObrazku/Tower/Sabnzbd%"),
|
||||
]
|
||||
|
||||
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-cache'
|
||||
FROM zaloha_obrazku z
|
||||
WHERE p.zaloha_id = z.id
|
||||
AND z.cesta_zalohy LIKE %s
|
||||
AND p.category IS DISTINCT FROM 'Odpad-cache'
|
||||
""", (like,))
|
||||
print(f" {popis}: {cur.rowcount:,} řádků aktualizováno")
|
||||
total += cur.rowcount
|
||||
|
||||
print(f"\nHotovo. Celkem aktualizováno: {total:,} řádků.")
|
||||
conn.close()
|
||||
Reference in New Issue
Block a user