Files
clawd/tools/pauza_random.py
Echo 10fb3d6fb5 refactor: mutat kb/ -> memory/kb/ pentru memory search
- Mutat toate fișierele din kb/ în memory/kb/
- Actualizat toate referințele în fișiere (.md, .py, .html)
- Actualizat 10 joburi cron cu noi căi
- Memory search indexează acum 58 fișiere din memory/
- TOOLS.md actualizat cu documentație completă
2026-02-01 21:18:45 +00:00

120 lines
3.6 KiB
Python

#!/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Ă
"""
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_details = []
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.) - oprește parsarea
if current_section and current_tehnica:
tehnici[current_section].append({
'titlu': current_tehnica,
'detalii': '\n'.join(current_details).strip()
})
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': '\n'.join(current_details).strip()
})
current_tehnica = line[4:].strip()
current_details = []
elif line.startswith('- ') and current_tehnica:
# Detaliu (bullet point)
current_details.append(line[2:].strip())
# Salvează ultima tehnică
if current_section and current_tehnica:
tehnici[current_section].append({
'titlu': current_tehnica,
'detalii': '\n'.join(current_details).strip()
})
return tehnici
def formateaza_mesaj(tehnica):
"""Formatează tehnica pentru mesaj Discord."""
titlu = tehnica['titlu']
detalii = tehnica['detalii']
# Alege un detaliu random dacă sunt mai multe
detalii_list = [d for d in detalii.split('\n') if d.strip()]
if detalii_list:
detaliu = random.choice(detalii_list)
# Curăță formatarea markdown
detaliu = re.sub(r'\*\*([^*]+)\*\*', r'\1', detaliu)
else:
detaliu = ""
return f"**{titlu}.** {detaliu}"
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()