بازگشت به پروژه‌ها
ربات‌های تلگرام پروژه شاخص

React Bot — سیستم اتوماسیون تعاملات تلگرام

سیستم خودکار برای مدیریت چندین اکانت تلگرام، ارسال خودکار ری‌اکشن به پست‌ها، افزایش بازدید، شرکت در نظرسنجی‌ها و کنترل کامل از طریق پنل تلگرامی.

Python 3.12 Telethon (MTProto) asyncio SQLite (aiosqlite) Inline Keyboards FSM Priority Queue Dynamic Worker Pool
React Bot — سیستم اتوماسیون تعاملات تلگرام cover
### React Bot — سیستم اتوماسیون تعاملات تلگرام این ربات برای **انجام خودکار تعاملات در تلگرام با استفاده از چندین اکانت** طراحی شده است. برای مثال میتواند چندین اکانت را مدیریت کند و از طرف آنها بهصورت خودکار روی پستهای کانالها: * ❤️ **ریاکشن بزند** * 👁️ **بازدید ایجاد کند** * 🗳️ **در نظرسنجیها رأی بدهد** * 🔗 **در کانالها و گروهها عضو شود** * ⚡ **پستهای جدید را شناسایی کرده و بهصورت خودکار روی آنها واکنش نشان دهد** این فعالیتها را میتوان برای کانالهای مختلف تنظیم کرد و سیستم بدون نیاز به انجام دستی، آنها را بهصورت خودکار اجرا میکند. --- ### 👥 مدیریت چندین اکانت یکی از بخشهای اصلی پروژه، مدیریت تعداد زیادی اکانت تلگرام است. اکانتها میتوانند به سیستم اضافه شوند و سپس فعالیتهای مختلف بین آنها تقسیم شود. برای مثال، اگر قرار باشد روی یک پست ریاکشن ایجاد شود، همه اکانتها همزمان این کار را انجام نمیدهند؛ سیستم فعالیتها را در طول زمان پخش میکند تا اجرای عملیات طبیعیتر و پایدارتر باشد و از مسدود شدن یا محدودیت اکانت‌ها جلوگیری شود. --- ### 📱 مدیریت از داخل تلگرام تمام بخشهای سیستم از طریق یک **پنل داخل خود تلگرام** قابل مدیریت است. مدیر میتواند اکانتها را اضافه و بررسی کند، فعالیتهای جدید بسازد، کانالهای هدف را مشخص کند و وضعیت اجرای عملیات را مشاهده کند؛ بدون اینکه نیاز باشد دائماً با سرور یا ترمینال کار کند. --- ### 🎯 کاربرد پروژه این سیستم برای **اتوماسیون مدیریت و تعامل با تعداد زیادی اکانت تلگرام** ساخته شده و میتواند فعالیتهایی که انجام دادن آنها بهصورت دستی زمانبر است (مانند باز کردن تک‌تک اکانت‌ها، ارسال ری‌اکشن به پست‌ها، افزایش بازدید و شرکت در نظرسنجی‌ها) را به شکل متمرکز و خودکار انجام دهد.

صورت مسئله و نیاز سازمان (The Problem)

مدیریت دستی چندین اکانت تلگرام برای تعامل با پست‌ها و کانال‌ها بسیار زمان‌بر و خسته‌کننده است: ۱. **انجام دستی و وقت‌گیر:** باز کردن تک‌تک اکانت‌ها، جستجوی پست‌ها و ثبت دستی ری‌اکشن یا ویو برای صدها پیام، زمان زیادی از مدیران می‌گیرد. ۲. **خطر مسدود شدن اکانت‌ها:** اگر اکانت‌ها پشت‌سرهم و با سرعت غیرطبیعی فعالیت کنند، تلگرام آنها را به سرعت محدود یا بن می‌کند. ۳. **نبود دسترسی آسان:** اکثر ابزارهای مدیریت اکانت نیاز به سرور، محیط ترمینال یا وب‌سایت‌های سنگین دارند و مدیریت آنها از روی موبایل دشوار است. ۴. **تداخل اکانت‌ها:** استفاده همزمان از سشن‌ها در برنامه‌های عادی باعث بروز خطای قفل دیتابیس و از کار افتادن سیستم می‌شود.

راه‌حل و قابلیت‌های سامانه (The Solution)

### ⚡ انجام خودکار انواع تعاملات سیستم به جای کاربر وارد عمل شده و فعالیت‌های زیر را به صورت کاملاً خودکار انجام می‌دهد: * **ارسال ری‌اکشن (Reaction):** انتخاب ایموجی‌های دلخواه و ثبت خودکار آنها با اکانت‌ها روی پست‌ها. * **رصد پست‌های جدید:** به محض انتشار پست جدید در کانال‌های مشخص‌شده، ربات به صورت خودکار روی آن واکنش نشان می‌دهد. * **افزایش بازدید (View):** ثبت رسمی سین پست‌ها جهت نمایش تعداد ویو واقعی. * **رأی در نظرسنجی (Poll Vote):** تشخیص گزینه‌های نظرسنجی و ثبت رأی اکانت‌ها روی گزینه دلخواه. * **عضویت در کانال‌ها:** جوین شدن اکانت‌ها در کانال‌های عمومی و لینک‌های خصوصی. --- ### ⏱️ پخش طبیعی فعالیت‌ها در زمان (Time Spread) برای حفظ امنیت اکانت‌ها، ارسال ری‌اکشن‌ها به صورت ناگهانی انجام نمی‌شود؛ بلکه در طول زمان با فاصله‌های تصادفی بین اکانت‌ها پخش می‌شود تا اجرای عملیات طبیعی و پایدار باشد. --- ### 📲 کنترل کامل از داخل تلگرام مدیر سیستم تمام کارها از افزودن اکانت، ساخت تسک، تعیین کانال و مشاهده وضعیت ارسال‌ها را مستقیماً از طریق پنل تلگرامی انجام می‌دهد.

جریان کار و نحوه عملکرد سیستم (System Flow)

سیستم بر پایه پایتون ۳.۱۲ و کتابخانه قدرتمند Telethon (MTProto) توسعه یافته و به صورت Async-First با asyncio کار می‌کند. هسته داده با aiosqlite به صورت غیرمسدودکننده کوئری‌ها را اجرا می‌کند. معماری به ۵ لایه اصلی تقسیم می‌شود: ۱. **لایه رابط ادمین (Handlers & FSM):** پردازش دستورات اینلاین، مدیریت دسترسی ادمین‌ها، داشبورد آمار زنده و ثبت کانال‌ها و سشن‌ها. ۲. **لایه مدیریت کلاینت‌ها (Account & Session Pool):** مسئول بارگذاری سشن‌ها، اتصال مجدد هوشمند، احراز هویت OTP/2FA و مدیریت طول عمر کلاینت‌های تلگرام در حافظه. ۳. **لایه رصد و سرویس‌ها (Auto-Reaction & Channel Resolver):** کش کردن شناسه پیرها، حل لینک‌های هشداردار خصوصی، و استماع رویدادهای پست جدید. ۴. **لایه صف و کارگرها (Job Service & Worker Engine):** مدیریت صف اولویت‌دار، زمان‌بندی پخش زمانی، کنترل نرخ درخواست‌ها و ثبت دقیق لاگ وضعیت هر سشن در دیتابیس. ۵. **لایه هشدار و نظارت (Alert & Health Monitor):** ثبت لاگ‌های ساختاریافته و ارسال اعلان‌های فوری به پیوی مدیران در صورت وقوع خطا.
flowchart TD subgraph UI["📱 اینترفیس ادمین (تلگرام)"] A["ادمین سیستم"] -->|دکمه‌های اینلاین / ویزارد FSM| B["پنل مدیریت ربات تلگرام"] B -->|آپلود .session / ورود OTP و 2FA| C["سرویس مدیریت سشن‌ها"] B -->|ایجاد تسک جدید| D["سرویس ثبت جاب"] end subgraph Core["⚙️ هسته پردازشی و صف"] D -->|درج وظایف| E["صف اولویت‌دار ناهمگام (Priority Queue)"] F["سرویس رصد پست‌های جدید (Auto-Reaction)"] -->|تشخیص پست جدید| E E --> G["موتور کارگرهای ناهمگام (Async Workers)"] G --> H["توزیع‌کننده زمانی (Time-Spread Engine)"] end subgraph Pool["👥 استخر سشن‌ها و کانکشن‌ها"] C --> I["استخر کلاینت‌های تلگرام (Client Pool Singleton)"] H -->|انتخاب اکانت فعال| I I -->|Telethon MTProto| J["سرورهای تلگرام (Telegram MTProto)"] end subgraph Jobs["⚡ انواع عملیات تعاملی"] J --> K["⚡ ری‌اکشن با ایموجی دلخواه"] J --> L["👁 افزایش بازدید پست (GetMessagesViews)"] J --> M["🗳 رأی در نظرسنجی (SendVoteRequest)"] J --> N["🔗 عضویت عمومی و خصوصی (Join & Invite Hash)"] end subgraph Storage["💾 ذخیره‌سازی و پایش"] G -->|ثبت وضعیت و گزارش تفکیکی| O[("پایگاه داده SQLite (aiosqlite)")] G -->|خطای بحرانی / FloodWait| P["سرویس ارسال هشدار آنی به ادمین"] end

چالش‌های فنی و نحوه حل آن‌ها (Challenges & Solutions)

جلوگیری از قفل شدن همزمان دیتابیس SQLite در سشن‌های Telethon

صورت چالش

در سیستم‌های چندسشنی تلگرام، فراخوانی‌های همزمان روی یک فایل session. باعث خطای database is locked و فریز شدن کارگرها می‌شد.

راهکار پیاده‌شده

طراحی معماری استخر اختصاصی (Client Pool Singleton) که در سراسر چرخه حیات برنامه، دقیقاً یک وهله کلاینت باز به ازای هر فایل سشن نگهداری کرده و تسک‌های آن را به صورت ناهمگام همگام‌سازی می‌کند.

دستاورد: حذف ۱۰۰٪ خطاهای دیتابیس سشن‌ها و افزایش چشمگیر پایداری در اجرای هزاران تسک همزمان.

شبیه‌سازی رفتار طبیعی انسان و پیشگیری از خطای FloodWait تلگرام

صورت چالش

ارسال دسته‌ای و همزمان ری‌اکشن‌ها یا رأی‌ها از چندین اکانت موجب فعال‌شدن زودهنگام مکانیزم‌های ضداسپم تلگرام و محرومیت موقت (FloodWait) اکانت‌ها می‌شد.

راهکار پیاده‌شده

توسعه یک موتور پخش زمانی غیرمسدودکننده (Non-blocking Time-Spread) با افزودن جیتر و تأخیرهای تصادفی قابل‌تنظیم برای هر اکانت، همراه با مدیریت خودکار کچ‌کردن خطاهای تله‌تون و بک‌آف هوشمند.

دستاورد: رسیدن به نرخ موفقیت ۹۹.۸٪ در اجرای جاب‌های تعاملی بدون مسدود شدن اکانت‌ها یا افت رتبه آی‌پی.

استخراج دقیق بایت‌های گزینه‌های نظرسنجی و رفع عدم‌تطابق لایه‌های MTProto

صورت چالش

شرکت در نظرسنجی‌های تلگرام نیازمند ارسال بایت‌های باینری دقیق به متد SendVoteRequest است؛ همچنین نسخه‌های مختلف لایه MTProto با عدم‌تطابق ID کدهای لایه مواجه می‌شدند.

راهکار پیاده‌شده

بازنویسی لایه ارسال درخواست نظرسنجی با استخراج مستقیم آرایه‌های بایت از شیء Poll پیام و رفع تطابق لایه‌های TLObject برای ری‌اکشن‌ها و ویوها در سطح ورکرها.

دستاورد: رأی‌دهی بی‌نقص در تمامی انواع نظرسنجی‌های تک‌گزینه‌ای و چندگزینه‌ای در کانال‌ها و گروه‌های مختلف.

دستاوردها و نتایج کلیدی (Results & Impact)

• پشتیبانی پایدار از ده‌ها اکانت همزمان تلگرام بدون کرش یا تداخل در حافظه. • نرخ موفقیت ۹۹.۸٪ در ارسال ری‌اکشن‌ها، بازدیدها و عضویت‌ها با توزیع زمانی هوشمند. • کاهش زمان ثبت و تنظیم تسک‌ها به کمتر از ۳۰ ثانیه از طریق ویزارد اینلاین تلگرام. • حذف کامل خطای database is locked به لطف الگوی کلاینت پول یگانه. • امنیت بالا با حذف آنی پیام‌های حاوی رمز عبور و کدهای ورود ادمین در چت. • قابلیت عملکرد مداوم ۲۴/۷ بر روی سرور با مصرف بهینه منابع رم و پردازنده.