84f933bcfa8056f742509f9cb5eb99b95aea51e5
Unsprezece generatoare nu mai rulau deloc la HEAD: cautau <line x1="24", iar svg_candles scrie x1="24.0" de cand are Level.i0. Un generator mort inseamna ca diagrama nu mai poate fi regenerata, si nimeni n-ar fi aflat pana cand ar fi incercat cineva, peste luni. Cele 11 copii ale aceluiasi regex au disparut: y_niveluri() si offset_render() se agata acum de semnatura liniei de Level (stroke-width + dasharray), nu de x-ul ei. Caz nou in selftest, cu Level(i0=) si panou de volum - combinatia la care varianta veche fie crapa, fie prindea tacut linia de zero a volumului. 41 de SVG-uri regenerate, toate identice cu cele comise dupa normalizarea x1=24 -> x1=24.0, deci niciun desen n-a sarit. Verificarea asta a prins o regresie reala: la buy_doji_transe substitutia lasase scaderea veche pe randul urmator, offsetul se scadea de doua ori si desenul urca 92 px. Inca doua generatoare moarte din aceeasi familie, gasite pe drum (intrarea_cazul_lui, intrarea_doua_variante): desenau peste grafic citind ch._y() fara offset. Nu crapau zgomotos - produceau suprapuneri la 22 px. 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
81.6%
Python
18.4%