Files
pgz-sport/scrapers/godisnjak_resume.py_prije_env_deepseek

119 lines
5.8 KiB
Python
Executable File

#!/usr/bin/env python3
import os
import psycopg2
DB = dict(host='localhost', port=5432, dbname='rinet_v3',
user='rinet', password=os.environ["DB_PASSWORD"])
conn = psycopg2.connect(**DB); conn.autocommit = True
cu = conn.cursor()
# Find Parasport savez ID (already exists)
cu.execute("SELECT id FROM pgz_sport.savezi WHERE naziv ILIKE 'Parasportski savez%PG%' LIMIT 1")
PARASPORT_ID = cu.fetchone()[0]
print(f"Parasport savez ID: {PARASPORT_ID}")
# Find which column name exists for address
cu.execute("""SELECT column_name FROM information_schema.columns
WHERE table_schema='pgz_sport' AND table_name='savezi'""")
cols = [r[0] for r in cu.fetchall()]
print(f"Savezi cols: {cols}")
# Use 'adresa' or whatever exists
addr_col = 'adresa' if 'adresa' in cols else ('sjediste' if 'sjediste' in cols else None)
web_col = 'web' if 'web' in cols else 'web_stranica'
email_col = 'email' if 'email' in cols else None
set_parts = []
vals = []
if addr_col:
set_parts.append(f'{addr_col} = COALESCE({addr_col}, %s)')
vals.append('Šetalište Ivana Gorana Kovačića 14, 51000 Rijeka')
if web_col in cols:
set_parts.append(f'{web_col} = COALESCE({web_col}, %s)')
vals.append('http://www.ssoi-pgz.hr')
if email_col and email_col in cols:
set_parts.append(f'{email_col} = COALESCE({email_col}, %s)')
vals.append('ssoi-pgz@ssoi-pgz.hr')
if set_parts:
sql = f"UPDATE pgz_sport.savezi SET {', '.join(set_parts)} WHERE id = %s"
vals.append(PARASPORT_ID)
cu.execute(sql, vals)
print(f"✓ Parasport kontakt updated: {addr_col}, {web_col}, {email_col}")
# Predsjednik + tajnik u osobe_funkcije
def upsert_funkcioner(ime, prezime, funkcija, savez_id):
cu.execute("""SELECT id FROM pgz_sport.osobe_funkcije
WHERE LOWER(ime)=LOWER(%s) AND LOWER(prezime)=LOWER(%s)""",
(ime, prezime))
if not cu.fetchone():
cu.execute("""INSERT INTO pgz_sport.osobe_funkcije
(ime, prezime, funkcija, savez_id) VALUES (%s,%s,%s,%s)""",
(ime, prezime, funkcija, savez_id))
return True
return False
if upsert_funkcioner('Zvonimir', 'Brozić', 'predsjednik Parasportskog saveza PGŽ', PARASPORT_ID):
print("+ Brozić")
else:
print("⊘ Brozić već postoji")
if upsert_funkcioner('Luka', 'Dobrović', 'tajnik Parasportskog saveza PGŽ', PARASPORT_ID):
print("+ Dobrović")
else:
print("⊘ Dobrović već postoji")
# Insert 12+5 parasportskih klubova
PARASPORT_KLUBOVI = [
('Paraatletski klub "Srce" Rijeka', 'parasport-atletika', 'Rijeka', 'atletika invalidi'),
('Paraplivački klub "Forca"', 'parasport-plivanje', 'Rijeka', 'plivanje invalidi'),
('Parastolnoteniski klub Rijeka', 'parasport-stolni tenis','Rijeka', 'stolni tenis invalidi'),
('Parastreljački klub "Paraolimpijac"', 'parasport-streljaštvo', 'Rijeka', 'streljaštvo invalidi'),
('Sportski klub slijepih "Rijeka"', 'parasport-multisport', 'Rijeka', 'multisport za slijepe'),
('Parasportski boccia klub "Rijeka"', 'parasport-bocce', 'Rijeka', 'boćanje invalidi'),
('Klub dresurnog jahanja za osobe s invaliditetom "Pegaz"', 'parasport-jahanje', 'Rijeka', 'dresurno jahanje invalidi'),
('Parasportska udruga za rekreaciju "Rijeka"','parasport-rekrejacija', 'Rijeka', 'rekreacija invalidi'),
('KKOI Kostrena', 'parasport-multisport', 'Kostrena', 'KK osoba s invaliditetom Kostrena'),
('PAK "Rijeka"', 'parasport-multisport', 'Rijeka', 'parasport. udruga Rijeka'),
('Parasportski savez Grada Rijeke', 'parasport-multisport', 'Rijeka', 'gradski parasport savez'),
('Riječki sportski savez gluhih', 'parasport-gluhi', 'Rijeka', '5 klubova: Galeb x4 + DSR'),
# 5 gluhih klubova preko RSS gluhih
('Streljački klub gluhih "Galeb"', 'parasport-gluhi-streljaštvo', 'Rijeka', 'pridruženi član preko Riječkog SS gluhih'),
('Malonogometni klub gluhih "Galeb"', 'parasport-gluhi-malonogomet', 'Rijeka', 'pridruženi član preko Riječkog SS gluhih'),
('Kuglački klub gluhih "Galeb"', 'parasport-gluhi-kuglanje', 'Rijeka', 'pridruženi član preko Riječkog SS gluhih'),
('Stolnoteniski klub gluhih "Galeb"', 'parasport-gluhi-stolni tenis','Rijeka', 'pridruženi član preko Riječkog SS gluhih'),
('Društvo sportske rekreacije gluhih "Galeb"','parasport-gluhi-rekrejacija','Rijeka', 'pridruženi član preko Riječkog SS gluhih'),
]
inserted = 0; updated = 0
for naziv, sport_tag, grad, opis in PARASPORT_KLUBOVI:
cu.execute("SELECT id, savez_id FROM pgz_sport.klubovi WHERE LOWER(naziv) = LOWER(%s) LIMIT 1", (naziv,))
row = cu.fetchone()
if row:
kid, old_savez = row
cu.execute("""UPDATE pgz_sport.klubovi SET
savez_id = %s, sport = %s, region = COALESCE(region, 'PGŽ'),
grad = COALESCE(grad, %s), napomena = COALESCE(napomena, %s)
WHERE id = %s""", (PARASPORT_ID, sport_tag, grad, opis, kid))
updated += 1
else:
cu.execute("""INSERT INTO pgz_sport.klubovi
(naziv, savez_id, sport, region, grad, napomena, aktivan)
VALUES (%s, %s, %s, 'PGŽ', %s, %s, true)""",
(naziv, PARASPORT_ID, sport_tag, grad, opis))
inserted += 1
print(f"Parasport klubovi: inserted={inserted}, updated={updated}")
cu.execute("SELECT count(*) FROM pgz_sport.klubovi WHERE savez_id = %s", (PARASPORT_ID,))
print(f"Ukupno parasport klubova: {cu.fetchone()[0]}")
cu.execute("""SELECT k.naziv, k.sport, k.grad
FROM pgz_sport.klubovi k
WHERE k.savez_id = %s ORDER BY k.naziv""", (PARASPORT_ID,))
print("\nLista parasport klubova:")
for naziv, sport, grad in cu.fetchall():
print(f"{naziv} ({sport}) — {grad}")
conn.close()
print("\n✓ Done")