diff --git a/web_check.py b/web_check.py index 8e62d30..718ec83 100644 --- a/web_check.py +++ b/web_check.py @@ -19,9 +19,10 @@ ADMIN_PW = os.getenv("ADMIN_PW") NTFY_BASE = os.getenv("NTFY_BASE") DEBUG_LOG = os.getenv("DEBUG_LOG", "false").lower() == "true" MIN_RELEVANZ_SCORE = int(os.getenv("MIN_RELEVANZ_SCORE", "30")) -GEMINI_MODEL = "flash" +GEMINI_MODEL = "gemini-2.5-flash-lite" GEMINI_SESSION = "1" - +NTFY = "true" +SIGNAL = "true" TOPIC_PUBLIC = "polit-scraper-public" TOPIC_ADMIN = "polit-scraper-admin" @@ -88,38 +89,30 @@ def analysiere_mit_gemini(text): } -def sende_public(titel, nachricht, klick_url, category="info", priority=3): +def sende_public(titel, nachricht, klick_url, tags, priority=3): """Sendet Push-Nachricht an ntfy.""" - if not NTFY_BASE: - return - url = f"{NTFY_BASE}/{TOPIC_PUBLIC}" - emoji_mapping = { - "demo": "rotating_light,loudspeaker", - "socialmedia": "detective,no_entry", - "polizei": "police_car,warning", - "stadt": "cityscape,newspaper", - "solidaritaet": "fist,heart", - "info": "newspaper", - } - tags = emoji_mapping.get(category.lower(), "newspaper") - headers = { - "Title": titel.encode("utf-8"), - "Tags": tags, - "Click": klick_url, - "Priority": str(priority), - } - try: - import requests + if NTFY == "true": + if not NTFY_BASE: + return + url = f"{NTFY_BASE}/{TOPIC_PUBLIC}" + headers = { + "Title": titel.encode("utf-8"), + "Tags": tags.encode("utf-8"), + "Click": klick_url, + "Priority": str(priority), + } + try: + import requests - requests.post( - url, - data=nachricht.encode("utf-8"), - headers=headers, - auth=(ADMIN_USER, ADMIN_PW), - timeout=10, - ) - except Exception as e: - print(f" [!] Fehler Public-Versand: {e}") + requests.post( + url, + data=nachricht.encode("utf-8"), + headers=headers, + auth=(ADMIN_USER, ADMIN_PW), + timeout=10, + ) + except Exception as e: + print(f" [!] Fehler Public-Versand: {e}") def sende_admin(titel, nachricht): @@ -229,15 +222,17 @@ def verarbeite_website(url): "begruendung_score", "Keine Begründung vorhanden" ) - if analyse.get("relevant") and score >= MIN_RELEVANZ_SCORE: - print(f" [!] RELEVANT (Score: {score}): {analyse.get('titel')}") - debug(f"Begründung: {begruendung}") + if score >= MIN_RELEVANZ_SCORE: + if DEBUG_LOG: + debug( + f"KI-Analyse-Ergebnis (JSON): {json.dumps(analyse, indent=2, ensure_ascii=False)}" + ) sende_public( titel=analyse.get("titel", "Polit-Update"), nachricht=analyse.get("nachricht", "Neu auf der Seite"), klick_url=link, - category=analyse.get("category", "info"), priority=analyse.get("priority", 3), + tags=analyse.get("tags", "panda_face"), ) else: debug( @@ -280,16 +275,18 @@ def verarbeite_website(url): "begruendung_score", "Keine Begründung vorhanden" ) - if analyse.get("relevant") and score >= MIN_RELEVANZ_SCORE: + if score >= MIN_RELEVANZ_SCORE: print( f" [!] RELEVANT (Score: {score}): {analyse.get('titel')}" ) + if DEBUG_LOG: + debug(f"KI-Analyse-Ergebnis (JSON): {json.dumps(analyse, indent=2, ensure_ascii=False)}") debug(f"Begründung: {begruendung}") sende_public( analyse.get("titel"), analyse.get("nachricht"), target_url, - analyse.get("category"), + analyse.get("tags"), analyse.get("priority"), ) else: @@ -321,8 +318,13 @@ with open("./urls.txt", "r", encoding="utf-8") as datei: adresse = zeile.strip() if not adresse or adresse.startswith("#"): continue + print(" ") + print( + "----------------------------------------------------------------------------------------------------" + ) + print(" ") print(f"Ich prüfe: {adresse}") verarbeite_website(adresse) conn.close() -print("\nFertig. Gute Nacht!") +print("\nBleibt wachsam und solidarisch! Bis zum nächsten Lauf.")