43e6fbcd32bcc396614175c9c9500b79f79a080e
Al doilea defect al uneltei: inaltimea de rand era constanta LINE_H=13, calibrata pe 12 px, deci la etichetele de 10 px cu pas de 12 px credea ca randurile se ating. Acum e LINE_H_RATIO x font-size-ul efectiv, mostenit corect de pe <g>. Factorul e 1.07, nu 1.15: agentul a incercat valorile mari, a masurat cu metrice reale de glif si a aratat ca scot cinci fantome noi. Cele doua probleme reale pe care unealta reparata le-a scos la iveala: atmi_ansamblu avea un caption de 792 px intr-un viewBox de 720, deci se taia la margine; la selectia_proximitate se calcau eticheta sagetii si titlul. Ambele reparate si privite la 1:1. Cele 92 de diagrame: 0 probleme. Selftest-ul trece, si prinde in continuare o suprapunere fabricata deliberat - unealta tace pentru ca e curat, nu pentru ca a orbit. Ramane, raportat si nereparat: CHAR_W = 5.7 e tot calibrat pe 12 px, deci latimea textelor mici e supraestimata. Aceeasi clasa de bug, n-a produs inca raportari gresite. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ThN7ixZrowca8aTGrK1MUJ
atm-curs-dl
Descarcă local toate videourile din cursul ATM (Bogdan Jinga, systeme.io), pentru backup personal — contul are deja acces plătit.
Folosește API-ul JSON al systeme.io (login → listă module/lecții → per
lecție, URL-ul video pe CloudFront) în loc de scraping HTML. Fiecare fișier
video e neserializat/semnat (CloudFront servește direct MP4-ul), deci
descărcarea e un simplu requests streaming cu suport de resume (Range).
Utilizare
pip install -r requirements.txt
cp .env.example .env # completează ATM_EMAIL / ATM_PASSWORD
python download.py # scrie în ./videos/<modul>/<lectie>.mp4
Reluabil: reia descărcările întrerupte (Range) și sare peste fișierele deja
complete (videos/manifest.json).
Description
Languages
HTML
82.3%
Python
17.7%