Relevanz Erkennung verfeineret, Handlungsbedarf (Socialmedia-Posts) hinzugefügt und Tags (Emojis) werden jetzt automatisch, Themenvasiert erstellt + kleinere Verfeinerungen
This commit is contained in:
42
web_check.py
42
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,23 +89,15 @@ 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 NTFY == "true":
|
||||
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,
|
||||
"Tags": tags.encode("utf-8"),
|
||||
"Click": klick_url,
|
||||
"Priority": str(priority),
|
||||
}
|
||||
@@ -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.")
|
||||
|
||||
Reference in New Issue
Block a user