#!/usr/bin/env python3 """ Alege o tehnică de pauză random din memory/tehnici-pauza.md În funcție de ora curentă (București = UTC+2): - 09:00-17:00 → BIROU - 18:00+ → ACASĂ Output include: tehnica + rezultat + sursă (pentru context) """ import random import re from datetime import datetime, timezone, timedelta from pathlib import Path # Timezone București (UTC+2, simplificat) TZ_OFFSET = timedelta(hours=2) def get_bucharest_hour(): """Returnează ora curentă în București.""" utc_now = datetime.now(timezone.utc) bucharest_now = utc_now + TZ_OFFSET return bucharest_now.hour def parse_tehnici(filepath): """Parsează fișierul și returnează dict cu BIROU și ACASA.""" content = Path(filepath).read_text(encoding='utf-8') tehnici = {'BIROU': [], 'ACASA': []} current_section = None current_tehnica = None current_detalii = [] current_rezultat = None current_sursa = None for line in content.split('\n'): # Detectează secțiunea if '## BIROU' in line: current_section = 'BIROU' continue elif '## ACASĂ' in line or '## ACASA' in line: current_section = 'ACASA' continue elif line.startswith('## ') or line.startswith('---'): # Altă secțiune (Surse, etc.) - salvează și oprește if current_section and current_tehnica: tehnici[current_section].append({ 'titlu': current_tehnica, 'detalii': current_detalii, 'rezultat': current_rezultat, 'sursa': current_sursa }) current_section = None continue if not current_section: continue # Detectează titlu tehnică (### Titlu) if line.startswith('### '): # Salvează tehnica anterioară if current_tehnica: tehnici[current_section].append({ 'titlu': current_tehnica, 'detalii': current_detalii, 'rezultat': current_rezultat, 'sursa': current_sursa }) current_tehnica = line[4:].strip() current_detalii = [] current_rezultat = None current_sursa = None elif line.startswith('- **Rezultat:**'): current_rezultat = line.replace('- **Rezultat:**', '').strip() elif line.startswith('- **Sursă:**'): current_sursa = line.replace('- **Sursă:**', '').strip() elif line.startswith('- ') and current_tehnica: # Detaliu (bullet point, exclude doar Rezultat și Sursă) detaliu = line[2:].strip() # Curăță bold markers detaliu = re.sub(r'\*\*([^*]+)\*\*:', r'\1:', detaliu) if detaliu: current_detalii.append(detaliu) # Salvează ultima tehnică if current_section and current_tehnica: tehnici[current_section].append({ 'titlu': current_tehnica, 'detalii': current_detalii, 'rezultat': current_rezultat, 'sursa': current_sursa }) return tehnici def formateaza_mesaj(tehnica): """Formatează tehnica pentru mesaj Discord cu context.""" titlu = tehnica['titlu'] detalii = tehnica['detalii'] rezultat = tehnica.get('rezultat') sursa = tehnica.get('sursa') # Alege un detaliu random dacă sunt mai multe if detalii: detaliu = random.choice(detalii) else: detaliu = "" # Construiește mesajul lines = [f"**{titlu}**"] if detaliu: lines.append(detaliu) if rezultat: lines.append(f"📊 _{rezultat}_") if sursa: # Extrage link-uri din markdown [text](url) și afișează separat link_pattern = re.compile(r'\[([^\]]+)\]\(([^)]+)\)') links = link_pattern.findall(sursa) # Curăță sursa de markdown links pentru text simplu sursa_clean = link_pattern.sub(r'\1', sursa) lines.append(f"📚 {sursa_clean}") # Adaugă link-urile pe linii separate for text, url in links: lines.append(f"🔗 <{url}>") return '\n'.join(lines) def main(): filepath = Path(__file__).parent.parent / 'memory/kb/tehnici-pauza.md' if not filepath.exists(): print("Fișierul tehnici-pauza.md nu există!") return hora = get_bucharest_hour() tehnici = parse_tehnici(filepath) # Alege secțiunea în funcție de oră if 9 <= hora <= 17: sectiune = 'BIROU' else: sectiune = 'ACASA' if not tehnici[sectiune]: print(f"Nu am tehnici pentru secțiunea {sectiune}!") return # Alege o tehnică random tehnica = random.choice(tehnici[sectiune]) mesaj = formateaza_mesaj(tehnica) print(mesaj) if __name__ == '__main__': main()