Files
fotkyBuzalkovi/00 PictureCollector/update_wanted.py
T
administrator 0f73a6b537 notebookVb
2026-06-04 22:56:27 +02:00

137 lines
4.3 KiB
Python

"""
update_wanted.py — označuje fotky wanted=TRUE a nastavuje category.
Spusť a uprav seznam pravidel podle potřeby.
"""
import psycopg2
DB = dict(host="192.168.1.76", port=5432, user="vladimir.buzalka",
password="Vlado7309208104++", database="fotky_buzalkovi")
conn = psycopg2.connect(**DB)
conn.autocommit = True
cur = conn.cursor()
rules = [
# (popis, SQL WHERE, category)
# ── Samsung ──────────────────────────────────────────────────────────────
(
"Samsung SM-G935F / A520F / A525F / J500FN / I8190N / S7560 / S5230",
"camera_make IN ('samsung', 'SAMSUNG', 'Samsung') AND camera_model IN "
"('SM-G935F','SM-A520F','SM-A525F','SM-J500FN','GT-I8190N','GT-S7560','GT-S5230')",
"Rodina",
),
# ── Profesionální / cizí ─────────────────────────────────────────────────
(
"Nikon D5 / D4 / D700 / D300 / D800 / D500",
"camera_make = 'NIKON CORPORATION' AND camera_model IN "
"('NIKON D5','NIKON D4','NIKON D700','NIKON D300','NIKON D800','NIKON D500')",
"Rodina",
),
(
"Canon EOS-1D X III / 450D / 600D / R6 / 5D IV / 5D / 40D / 20D",
"camera_make = 'Canon' AND camera_model IN "
"('Canon EOS-1D X Mark III','Canon EOS 450D','Canon EOS 600D','Canon EOS R6',"
"'Canon EOS 5D Mark IV','Canon EOS 5D','Canon EOS 40D','Canon EOS 20D')",
"Rodina",
),
(
"Sony ILCE-1 (Alpha 1)",
"camera_make = 'SONY' AND camera_model = 'ILCE-1'",
"Rodina",
),
(
"Panasonic DC-S5",
"camera_make = 'Panasonic' AND camera_model = 'DC-S5'",
"Rodina",
),
# ── Ostatní kompakty ─────────────────────────────────────────────────────
(
"Panasonic DMC-FZ5",
"camera_make = 'Panasonic' AND camera_model = 'DMC-FZ5'",
"Rodina",
),
(
"Canon PowerShot S40",
"camera_make = 'Canon' AND camera_model = 'Canon PowerShot S40'",
"Rodina",
),
(
"Canon PowerShot A40",
"camera_make = 'Canon' AND camera_model = 'Canon PowerShot A40'",
"Rodina",
),
(
"Panasonic DMC-FX33",
"camera_make = 'Panasonic' AND camera_model = 'DMC-FX33'",
"Rodina",
),
(
"NIKON D80",
"camera_make = 'NIKON CORPORATION' AND camera_model = 'NIKON D80'",
"Rodina",
),
(
"GoPro HERO6 Black",
"camera_make = 'GoPro' AND camera_model = 'HERO6 Black'",
"Rodina",
),
(
"Microsoft Lumia 930",
"camera_make = 'Microsoft' AND camera_model = 'Lumia 930'",
"Rodina",
),
(
"Panasonic DMC-FX3",
"camera_make = 'Panasonic' AND camera_model = 'DMC-FX3'",
"Rodina",
),
(
"Sony DSC-T77",
"camera_make = 'SONY' AND camera_model = 'DSC-T77'",
"Rodina",
),
(
"Olympus C120/D380",
"camera_make = 'OLYMPUS OPTICAL CO.,LTD' AND camera_model = 'C120,D380'",
"Rodina",
),
(
"Sony DSC-WX50",
"camera_make = 'SONY' AND camera_model = 'DSC-WX50'",
"Rodina",
),
(
"Sony CYBERSHOT",
"camera_make = 'SONY' AND camera_model = 'CYBERSHOT'",
"Rodina",
),
(
"Casio EX-Z6",
"camera_make = 'CASIO COMPUTER CO.,LTD.' AND camera_model = 'EX-Z6'",
"Rodina",
),
(
"Olympus C765UZ",
"camera_make = 'OLYMPUS CORPORATION' AND camera_model = 'C765UZ'",
"Rodina",
),
(
"Nikon E990",
"camera_make = 'NIKON' AND camera_model = 'E990'",
"Rodina",
),
]
for popis, where, category in rules:
cur.execute(f"""
UPDATE photos
SET wanted = TRUE,
category = %s
WHERE {where}
AND (wanted = FALSE OR category IS DISTINCT FROM %s)
""", (category, category))
print(f"{popis}: {cur.rowcount:,} řádků → wanted=TRUE, category='{category}'")
conn.close()
print("Hotovo.")