Tagebuch-Wochenrückblick + 171 Hundezitate
Wochenrückblick (diary.js _loadPraise) merkt sich jetzt das Wegklicken pro Kalenderwoche (localStorage by_diary_praise_dismissed) — kommt nicht mehr bei jedem Öffnen. Lob-Text abwechslungsreich (scheduler.py): wöchentlich rotierender KI-Fokus + Fallback-Varianten-Pool statt einem festen Satz, prominente Wochenzahl raus. WELT-Welt Tageszitat: _QUOTES von 31 auf 171 erweitert (web-recherchiert, 57% mit benannter Quelle statt vorher 29%) — Wiederholung erst nach ~5,7 Monaten statt monatlich.
This commit is contained in:
parent
e86d89f3d9
commit
51aad6cf1b
3 changed files with 180 additions and 6 deletions
|
|
@ -989,6 +989,7 @@ async def _generate_praise_for_dog(dog: dict, user_id: int) -> str:
|
|||
from datetime import date, timedelta
|
||||
|
||||
since = (date.today() - timedelta(days=7)).isoformat()
|
||||
week_num = date.today().isocalendar()[1]
|
||||
name = dog["name"]
|
||||
rasse = dog.get("rasse") or "Hund"
|
||||
|
||||
|
|
@ -1029,16 +1030,30 @@ async def _generate_praise_for_dog(dog: dict, user_id: int) -> str:
|
|||
else:
|
||||
aktivitaet_text = ", ".join(aktivitaet_parts)
|
||||
|
||||
# W\u00f6chentlich rotierender Fokus \u2192 die KI klingt nicht jede Woche gleich.
|
||||
_toene = [
|
||||
"Betone die enge Verbundenheit zwischen {name} und dir.",
|
||||
"Hebe die kleinen Abenteuer und besonderen Momente hervor.",
|
||||
"W\u00fcrdige die sch\u00f6ne gemeinsame Routine und Verl\u00e4sslichkeit.",
|
||||
"Feiere das gemeinsame Wachsen und die Fortschritte.",
|
||||
"Betone Ruhe, Geborgenheit und Vertrauen.",
|
||||
"Schreibe verspielt und mit einem Augenzwinkern.",
|
||||
]
|
||||
ton = _toene[week_num % len(_toene)].replace("{name}", name)
|
||||
|
||||
prompt = f"""Du bist ein warmer, wohlwollender Begleiter f\u00fcr Hundebesitzer. Schreibe eine kurze pers\u00f6nliche Lob-Nachricht (2-3 S\u00e4tze) f\u00fcr die vergangene Woche.
|
||||
|
||||
Hund: {name} ({rasse})
|
||||
Letzte 7 Tage: {aktivitaet_text}
|
||||
Dabei seit: {stats.get('weeks_total', 1)} Wochen
|
||||
|
||||
Fokus dieser Woche: {ton}
|
||||
|
||||
Regeln (unbedingt einhalten):
|
||||
- Nur loben, NIEMALS Ratschl\u00e4ge geben oder auf Fehlendes hinweisen
|
||||
- Sprich \u00fcber den Hund: "{name} hatte eine tolle Woche" \u2014 nicht \u00fcber den Besitzer
|
||||
- Auch bei 0 Aktivit\u00e4ten: positive Formulierung (\u201eAuch ruhige Wochen geh\u00f6ren dazu\u201c)
|
||||
- Variiere Einstieg und Wortwahl \u2014 klinge NICHT wie letzte Woche
|
||||
- Erw\u00e4hne KEINE Wochenzahl und keine nackten Statistik-Zahlen
|
||||
- Maximal 3 kurze S\u00e4tze
|
||||
- Warm, pers\u00f6nlich, keine Floskeln
|
||||
- Kein "Du solltest...", kein "Vergiss nicht...", keine Empfehlungen"""
|
||||
|
|
@ -1051,11 +1066,24 @@ Regeln (unbedingt einhalten):
|
|||
)
|
||||
return text.strip()
|
||||
except Exception:
|
||||
# Fallback wenn KI nicht verfügbar
|
||||
if aktivitaet_parts:
|
||||
return f"{name} hatte eine aktive Woche \u2014 {aktivitaet_text}. Das ist toll! \U0001f43e"
|
||||
else:
|
||||
return f"Auch ruhige Wochen geh\u00f6ren dazu. {name} wei\u00df, dass du f\u00fcr ihn da bist. \U0001f43e"
|
||||
# Fallback wenn KI nicht verfügbar — Varianten-Pool, deterministisch pro
|
||||
# Woche+Hund gewählt, damit der Text nicht jede Woche identisch klingt.
|
||||
aktiv_varianten = [
|
||||
f"{name} hatte eine richtig aktive Woche — {aktivitaet_text}. Stark! 🐾",
|
||||
f"Was für eine Woche, {name}! {aktivitaet_text} — das kann sich sehen lassen. 🌟",
|
||||
f"{name} war diese Woche voll dabei: {aktivitaet_text}. Weiter so! 🐶",
|
||||
f"Tolle Woche mit {name} — {aktivitaet_text}. Ihr seid ein super Team! 🐾",
|
||||
f"{aktivitaet_text} — dafür hat sich {name} eine extra Streicheleinheit verdient. ✨",
|
||||
]
|
||||
ruhig_varianten = [
|
||||
f"Auch ruhige Wochen gehören dazu. {name} weiß, dass du für ihn da bist. 🐾",
|
||||
f"Diese Woche war's gemütlich — und das ist völlig okay. {name} genießt die Zeit mit dir. 🌿",
|
||||
f"Nicht jede Woche muss voll sein. {name} fühlt sich bei dir einfach wohl. ☀️",
|
||||
f"Eine entspannte Woche mit {name} — manchmal ist genau das das Schönste. 🐾",
|
||||
f"{name} und du — auch ohne großes Programm seid ihr ein eingespieltes Team. 🐶",
|
||||
]
|
||||
pool = aktiv_varianten if aktivitaet_parts else ruhig_varianten
|
||||
return pool[(week_num + dog["id"]) % len(pool)]
|
||||
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue