#!/usr/bin/env python3 # ═══════════════════════════════════════════════════════════════════ # Fajl: sub1_hns_manual_overrides.py | v1.0.0 | 05.05.2026 # Lokacija: /opt/pgz-sport/scripts/sub1_hns_manual_overrides.py # Autor: dradulic@outlook.com / damir@rinet.one # Svrha: SUB1 — Manual high-confidence overrides za klubove koje # fuzzy match nije uhvatio (ali postoje u HNS-u). # ═══════════════════════════════════════════════════════════════════ """SUB1 manual overrides — verified mapping for special cases.""" import os, re, sys, time, urllib.request from datetime import datetime import psycopg2 DSN = os.getenv("RINET_DSN", f"host=10.10.0.2 port=6432 dbname=rinet_v3 user=rinet password={os.environ['DB_PASSWORD']}") UA = "PGZ-Sport-Bot/1.0 (+https://api.rinet.one/sport/; contact dradulic@outlook.com)" # Manual mappings — verified by visiting semafor.hns.family # Format: db_id -> (hns_id, slug, naziv-na-HNS, reason) OVERRIDES = { 9: (3440, "znk-rijeka", "ŽNK Rijeka", "Ženski NK Rijeka — same modern club"), 101: (3440, "znk-rijeka", "ŽNK Rijeka", "Ženski NK Rijeka 'Jack Pot' — sponsor naming, same club"), 574: (5239, "nk-medicinar", "NK Medicinar", "NK Medicinar Rijeka (osnovan 1996, SRC Belveder)"), } def http_check(url, timeout=10): try: req = urllib.request.Request(url, headers={"User-Agent": UA}) with urllib.request.urlopen(req, timeout=timeout) as r: html = r.read().decode("utf-8", errors="replace") m = re.search(r'