chore(kb): notițe youtube mai, fix email tools, update newsletter/anaf-monitor

Adaugă 4 notițe YouTube (llama.cpp, Mario Zechner, bonificatie impozit,
AI scaffolding) + notă coaching grok. Actualizează index KB.
Fix email_digest și email_forward. Update newsletter cercetasi + cron jobs.
ANAF monitor hashes/snapshots/versions la zi.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-13 21:02:55 +00:00
parent f04e033dbe
commit 3570d9a625
16 changed files with 676 additions and 72 deletions

View File

@@ -28,6 +28,16 @@ from tools.email_process import (
from src.config import Config
BRIDGE_URL = "http://127.0.0.1:8098"
def clean_urls(text: str) -> str:
"""Remove %0A and wrapped newlines from URLs in plain text emails."""
def _clean_url(m):
url = m.group(0)
url = url.replace('%0A', '').replace('%0a', '')
url = re.sub(r'\s+', '', url)
return url.rstrip('.')
return re.sub(r'https?://\S+', _clean_url, text)
DRY_RUN = "--dry-run" in sys.argv
@@ -100,6 +110,8 @@ def generate_summary(subject: str, from_full: str, date: str, body: str) -> str:
display_from = extract_original_sender(subject, body, from_full)
display_subject = re.sub(r'^(Fwd?|Fw)\s*[:\s]\s*', '', subject, flags=re.IGNORECASE).strip() or subject
body = clean_urls(body)
prompt = f"""Mai jos este conținutul unui email. Scrie un rezumat factual pentru WhatsApp.
EMAIL:
@@ -116,7 +128,7 @@ Instrucțiuni:
* Prima propoziție: cine a trimis mesajul original, ce, cui.
* Ce conține mesajul — concret și direct. Omite politețuri și amabilități; include doar faptele.
* Dacă există termene, date, locuri sau acțiuni cerute — menționează-le explicit.
* Dacă există URL-uri relevante (articole, documente, formulare, linkuri de citit online, resurse), adaugă o secțiune LINKURI la final cu URL-urile complete, câte unul pe rând.
* Dacă un item menționează un formular, document sau resursă cu link, include URL-ul direct după item, pe același rând sau pe rândul imediat următor — inline, nu secțiune separată la final. Copiază URL-urile COMPLET, fără trunchieri sau '...'.
- Nu adăuga secțiuni goale sau care nu se aplică emailului.
- Plain text, fără markdown. Fără emoji.
- Răspunde DOAR cu rezumatul, nimic altceva."""