notebookVb
This commit is contained in:
@@ -0,0 +1,136 @@
|
||||
"""
|
||||
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.")
|
||||
Reference in New Issue
Block a user