Commit Graph

20 Commits

Author SHA1 Message Date
e49e653e12 Adauga detectie inteligenta campuri login cu strategii fallback
Rezolva problema cand selectoarele BT se schimba - acum incearca
multiple strategii pentru a gasi username, password si submit button.
Imbunatateste si gestionarea GDPR cookie banner.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 14:32:49 +02:00
58399e25fb Adauga comanda /tranzactii pentru vizualizare tranzactii interactive
- Sistem interactiv de selectie conturi cu state management
- Filtrare pe perioade: [nr cont] [nr zile] (ex: 2 30 = ultimele 30 zile)
- Format compact: tranzactii grupate pe date, fara sold
- Extragere inteligenta comercianti din platile POS (TID pattern)
- Escape automat caractere speciale Markdown pentru Telegram
- Timeout 5 minute pentru sesiuni de selectie
- Suport comenzi: doar numar = ultimele 10, numar + zile = filtrare

Corectari:
- Fix import timedelta pentru filtrare pe date
- Fix conflict nume variabila period vs csv_period
- Fix Markdown parsing errors (underscore, dot, etc)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-12 14:32:56 +02:00
91021fa530 Permite membrilor grupului sa foloseasca bot-ul in DM prin verificare API
Adauga logica de autorizare flexibila:
- Useri in TELEGRAM_ALLOWED_USER_IDS (whitelist explicit)
- SAU membrii grupului TELEGRAM_CHAT_ID (verificare getChatMember API)
- Membrii grupului pot folosi bot-ul atat in grup cat si in DM individual

Modificari:
- telegram_trigger_bot.py: metoda is_member_of_group() cu verificare API
- telegram_trigger_bot.py: is_user_allowed() cu logica OR pentru whitelist + grup
- .env.example: comentarii actualizate pentru noua logica
- TELEGRAM_BOT_SETUP.md: documentatie completa pentru autorizare

Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-12 11:26:48 +02:00
548526fdde Adauga stergere automata fisiere inainte de scraping
La comenzile /scrape* se sterg automat fisierele CSV, JSON, ZIP si PNG anterioare pentru a preveni acumularea de date vechi.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-11 01:15:03 +02:00
e2ec15939c Adauga comenzi Telegram pentru solduri si repara get_telegram_chat_id
- Adauga /scrape_solduri - scraping rapid doar solduri (fara CSV tranzactii)
- Adauga /solduri - afisare instant solduri din cache (fara 2FA)
- Redenumeste comenzi pentru consistenta
- Adauga suport BALANCES_ONLY in scraper (skip download tranzactii)
- Repara get_telegram_chat_id.py - elimina input() interactiv
- Imbunatateste output get_telegram_chat_id.py cu info bot si formatare

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-11 01:03:02 +02:00
7e8dadcbdc Adaugă trimitere ZIP pe email și elimină emoji-uri din mesaje
- /scrape_zip trimite ZIP pe ambele canale (Telegram + email)
- /zip trimite ZIP și pe email, nu doar pe Telegram
- Elimină emoji-uri din mesajele Telegram user-facing
- Adaugă ghid "NO EMOJIS" în CLAUDE.md

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 21:58:03 +02:00
1e20334b3d Fix Git Pull & Restart - elimină dubla confirmare
Implementează logica de restart inline în loc să apeleze restart_service.ps1
pentru a evita 2 confirmări consecutive (Read-Host).

Îmbunătățiri:
- Restart serviciu inline (stop + start direct în funcție)
- Un singur prompt la final pentru revenire în meniu
- Mesaje de status detaliate pentru fiecare pas
- Gestionare erori pentru stop și start serviciu

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 21:44:10 +02:00
4e58e663e9 Adaugă opțiunea Git Pull & Restart în menu.ps1
Nouă funcționalitate pentru actualizare automată:
- Opțiunea [G] în meniul principal
- Funcția Invoke-GitPullRestart care rulează git pull
- Restart automat al serviciului dacă este instalat
- Validare exit code și gestionare erori

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 21:38:35 +02:00
c2ca401a26 Fix UnicodeEncodeError pe Windows pentru caractere românești
Problema:
- Logging eșua cu UnicodeEncodeError când scria caractere românești (ă, î, ș)
- Windows cmd.exe folosește cp1252 implicit, nu UTF-8

Soluție:
- Forțare encoding UTF-8 pentru stdout și stderr
- Folosește io.TextIOWrapper cu encoding='utf-8'
- errors='replace' pentru caractere care nu pot fi encodate

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 21:31:55 +02:00
821c1a8e01 Adaugă progress updates pentru /scrape_zip
Modificări:
- telegram_trigger_bot.py:
  - Păstrează TELEGRAM_CHAT_ID și TELEGRAM_MESSAGE_ID pentru progress
  - Setează flag SEND_AS_ZIP=true în environment
  - NU mai dezactivează notificările

- notifications.py:
  - Verifică flag SEND_AS_ZIP din environment
  - Dacă SEND_AS_ZIP=true, trimite ZIP cu progress updates
  - Mesajul de progres e editat la fel ca /scrape normal

Comportament /scrape_zip:
1. Bot trimite "Scraper pornit (arhiva ZIP)"
2. Scraper rulează și editează mesajul cu progress
3. notifications.py detectează flag-ul SEND_AS_ZIP
4. Trimite ZIP cu solduri în loc de fișiere individuale
5. Editează mesajul final cu detalii despre ZIP

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 21:30:54 +02:00
bc353308b5 Documentare comandă /scrape_zip în README
- Actualizare listă comenzi Telegram bot
- Clarificare diferențe între /scrape, /scrape_zip, /zip

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 21:23:12 +02:00
463b51da99 Adaugă comanda /scrape_zip în Telegram bot
Funcționalitate:
- /scrape_zip - Rulează scraper + trimite rezultatele ca ZIP
- Dezactivează notificările automate din scraper
- Bot trimite manual ZIP-ul după scraping

Logică:
- run_scraper() primește parametru send_as_zip
- Dacă send_as_zip=True:
  - Setează ENABLE_NOTIFICATIONS=false în env
  - După scraping, apelează send_zip_files()
- Rezultat: un singur ZIP în loc de fișiere individuale

Comenzi disponibile:
- /scrape - Fisiere individuale (comportament original)
- /scrape_zip - Un singur ZIP (nou)
- /zip - Trimite fișierele existente ca ZIP (fără scraping)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 21:22:48 +02:00
f088308323 Documentare comandă /zip în README
- Actualizare listă comenzi Telegram bot
- Clarificare: /zip trimite fără scraping

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 21:20:43 +02:00
c665ad7813 Adaugă comanda /zip în Telegram bot
Funcționalitate:
- /zip - Trimite ultimele fișiere ca arhivă ZIP
- Găsește automat fișierele din ultima sesiune
- Include solduri per cont + total RON în caption
- Verifică limita Telegram (50 MB)
- Șterge automat ZIP-ul temporar după trimitere

Avantaje:
- Mai rapid decât /scrape (nu rulează scraper-ul)
- Un singur fișier în loc de mai multe
- Include toate datele (CSV + JSON)
- Afișează solduri complete în mesaj

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 21:20:17 +02:00
2439d0b62a Adaugă solduri în notificările email
- EmailNotifier primește lista de conturi (nu doar count)
- _create_email_body afișează solduri per cont + total RON
- Format tabel HTML frumos cu styling
- send_notifications.py citește date din JSON
- Sincronizare cu TelegramNotifier (deja avea solduri)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 21:15:52 +02:00
5aa4900b23 Update secțiune actualizare - folosește scripturi existente
- restart_service.ps1 pentru Windows Service
- Instrucțiuni separate pentru dev manual

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 21:05:06 +02:00
355b291096 Adaugă secțiune actualizare după modificări
- git pull origin main
- Reinstalare dependențe
- Restart serviciu

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 21:03:55 +02:00
6736f6f884 Fix sintaxa PowerShell in setup_dev.ps1
- Înlocuit goto (batch) cu flag $skipCreate
- Structura if corectă pentru PowerShell

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 21:02:37 +02:00
ad5e86ccca Adaugă secțiune instalare pe VM Windows
- Instrucțiuni clonare din Gitea
- Setup automat cu deployment scripts
- Config .env
- Rulare scraper

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 20:59:39 +02:00
9956e9c11e initializare 2025-11-06 20:55:35 +02:00