← Toate proiectele 05 · AUTOPOST-BOT
AUTOPOST-BOT — Telegram RSS + abonament plătit
Bot Telegram de producţie cu sistem propriu de plăţi şi autopostare RSS programată. Unul din 15+ boţi livraţi în acea perioadă.
github.com/dragekorn/AUTOPOST-BOTPlatformă de monetizare pentru canale Telegram: companiile plătesc direct în bot (100 RUB = 100 token-uri pentru 30 de zile) ca să poată comenta în grupurile unde este prezent botul. În paralel — autopostare din surse RSS cu filtre şi formatare configurabile.
Context
Clientul avea nevoie de un sistem self-serve în care companiile plătesc pentru a comenta în canalele Telegram — fără servicii externe, fără account manager uman. Plăţile, contabilitatea token-urilor, controlul abonamentelor şi moderarea trăiesc toate în interiorul botului.
Ce am livrat
- Am proiectat şi construit un sistem de plăţi peste Telegram Payments: 100 de token-uri pentru 30 de zile la 100 RUB, debitare automată la fiecare comentariu, revocare automată la expirare.
- Am construit un parser RSS cu coadă şi programator: import feed-uri după URL, dedup, formatare automată pentru fiecare canal/grup ţintă.
- Am scris sistemul de control al comentariilor: botul şterge instant postările utilizatorilor fără abonament activ, trimite un memento auto-distructibil, apoi bannează 24 de ore după 5 avertismente ignorate.
- Am implementat un procesor de fişiere în fundal — directoarele XLSX, JSON şi CSV ale organizaţiilor sunt ingerate şi transformate în distribuiri.
- Am expus o interfaţă de admin prin comenzi bot: căutare utilizatori, acordare manuală de token-uri, unban, hot-swap de template-uri de mesaje prin pm2 --watch.
- Am rulat totul pe MongoDB + pm2, am mutat secretele în .env, am documentat procesul de clonare ca să poată porni instanţe noi.
Note tehnice
- Starea abonamentului: hasPaid, tokens, paymentDate, subscriptionEndDate în MongoDB — câmpuri financiare reale, nu un singur flag boolean.
- Worker-ii cu viaţă lungă şi pipeline-ul de fişiere trăiesc într-un proces separat ca să nu blocheze niciodată polling-ul botului.
- Template-urile de mesaje se editează schimbând const messageTemplate în index.js — pm2 --watch preia modificarea fără restart.