شروع
WZML-X چیست؟
آشنایی با ربات تلگرامی WZML-X، کارهایی که انجام میدهد و اجزایی که پشت صحنه با هم کار میکنند.
WZML-X یک ربات تلگرامی برای جابهجا کردن فایل است. لینک یا فایلی را به ربات میدهید؛ ربات آن را روی سرور خودتان دانلود میکند، در صورت نیاز روی آن کار میکند (فشردهسازی، استخراج، تغییر نام و…) و نتیجه را به مقصدی که انتخاب کردهاید میفرستد. همهٔ کارها با دستورهای تلگرام انجام میشود و بیشتر تنظیمات را هم میتوانید از داخل خود ربات تغییر دهید.
این مستندات بر اساس نسخهٔ v3.1.11 از شاخهٔ wzv3 نوشته شده است.
میرور، لیچ و کلون به زبان ساده
- میرور (Mirror): دانلود و آپلود در فضای ابری. ربات فایل را دانلود میکند و آن را در یک فضای ابری مثل گوگل درایو یا یک ریموت Rclone آپلود میکند. در پایان، لینک فایل در آن فضا را دریافت میکنید. دستور پایه:
/mirror(کوتاهشده:/m). - لیچ (Leech): دانلود و ارسال فایل در خود تلگرام. ربات فایل را دانلود میکند و خودِ فایل را در تلگرام برایتان میفرستد. اگر فایل از سقف مجاز تلگرام بزرگتر باشد، آن را به چند تکه تقسیم میکند. دستور پایه:
/leech(کوتاهشده:/l). - کلون (Clone) محتوا را مستقیم از مبدأ به مقصد کپی میکند؛ مثلاً از یک لینک گوگل درایو به درایو شما، بین ریموتهای Rclone، یا پیامهای تلگرام از یک چت به چت دیگر. در حالت تلگرام هیچ فایلی روی دیسک سرور نوشته نمیشود. دستور:
/clone(کوتاهشده:/cl).
برای هر کدام نسخههای تخصصی هم وجود دارد؛ مثلاً /qbmirror و /qbleech فقط برای تورنت با qBittorrent، /ytdl و /ytdlleech برای سایتهای yt-dlp، /jdmirror برای JDownloader و /nzbmirror برای Usenet. فهرست کامل را در صفحهٔ دستورات و جزئیات هر گزینه را در آرگومانها ببینید.
از کجا میتواند دانلود کند؟
| منبع | توضیح |
|---|---|
| تورنت و مگنت | با Aria2، یا با qBittorrent وقتی از دستورهایی که با qb شروع میشوند استفاده کنید. |
| لینک مستقیم | فایلهای HTTP با Aria2. برای بسیاری از سایتهای اشتراک فایل (مثل MediaFire، PixelDrain، Gofile، TeraBox، WeTransfer و 1fichier) ربات ابتدا لینک مستقیم را خودش استخراج میکند. |
| گوگل درایو | لینک یا شناسهٔ فایل و پوشه، با token.pickle یا سرویساکانتها. |
| Mega | لینکهای Mega. برای حساب ویژه میتوانید MEGA_EMAIL و MEGA_PASSWORD را تنظیم کنید. |
| فایلهای تلگرام | با ریپلای روی یک فایل یا با فرستادن لینک پیام تلگرام. |
| سایتهای yt-dlp | YouTube، لینکهای m3u8، شبکههای اجتماعی و هر سایتی که yt-dlp پشتیبانی میکند، با /ytdl. |
| NZB / Usenet | با SABnzbd و سرورهایی که در USENET_SERVERS تعریف میکنید؛ دستور /nzbmirror. |
| JDownloader | با حساب My JDownloader (JD_EMAIL و JD_PASS)؛ دستور /jdmirror. |
| Seedr | با آرگومان -seedr، مگنت به حساب Seedr.cc شما فرستاده میشود و بعد از تمام شدن آنجا، فایلها از Seedr دانلود میشوند. دستور /seedrlink هم لینک دانلود مستقیم Seedr را میسازد. |
| AllDebrid | با آرگومان -ad و کلید ALLDEBRID_API_KEY، لینک سایتهای اشتراک فایل یا مگنت از طریق AllDebrid باز میشود. |
| مسیر Rclone | مسیرهای Rclone (مثل main:dump/ubuntu.iso) درست مثل لینک پذیرفته میشوند. |
فایلها کجا میروند؟ (مقصد آپلود)
- گوگل درایو: پوشه یا درایو اشتراکی که در
GDRIVE_IDیا تنظیمات کاربر تعیین شده است. - ریموتهای Rclone: هر فضایی که در
rclone.confتعریف کرده باشید، با مسیر پیشفرضRCLONE_PATH. - تلگرام: در حالت لیچ، فایلها به چت شما، پیام خصوصی، یا یک چت دامپ (چتی که نسخهای از فایلها در آن ذخیره میشود) فرستاده میشوند.
- سرویس آپلود مستقیم (Uphoster): با دستور
/uphoster(کوتاهشده:/up) فایل در Gofile، BuzzHeavier، PixelDrain، DevUploads یا VikingFile آپلود میشود. - Mega و YouTube هم بهعنوان مقصد در کد وجود دارند.
مقصد پیشفرض میرور را DEFAULT_UPLOAD تعیین میکند: gd برای گوگل درایو و rc برای Rclone (مقدار پیشفرض). هر کاربر میتواند مقصدهای خودش را در تنظیمات کاربر با /usetting (کوتاهشده: /us) تعیین کند.
رابط وب
ربات در کنار خودش یک وبسرور کوچک هم اجرا میکند که دو کار اصلی دارد:
- انتخاب فایل: قبل از شروع دانلود یک تورنت یا NZB، میتوانید در مرورگر فهرست فایلها را ببینید و فقط آنهایی را که لازم دارید انتخاب کنید.
- پخش آنلاین (استریم): برای فایلهای ویدیویی و صوتی تلگرام، لینک پخش در مرورگر و لینک دانلود مستقیم ساخته میشود.
جزئیات در صفحهٔ رابط وب.
اجزا چطور کنار هم کار میکنند؟
در روش پیشنهادی (Docker Compose) دو کانتینر اجرا میشود و یک پایگاه دادهٔ بیرونی هم لازم است:
| جزء | کجا اجرا میشود | کار |
|---|---|---|
ربات (python -m bot) | کانتینر app | به تلگرام وصل میشود، دستورها را میگیرد و کارها را مدیریت میکند. |
| رابط وب | کانتینر app، پورت 8080 | صفحهٔ انتخاب فایل، صفحههای پخش، و دسترسی محافظتشده به پنل qBittorrent و SABnzbd. |
| تونل Cloudflare | کانتینر tunnel | با cloudflared یک آدرس عمومی https://….trycloudflare.com برای رابط وب میسازد؛ ربات این آدرس را خودکار بهعنوان BASE_URL برمیدارد. |
| MongoDB | بیرون از کانتینرها (مثلاً MongoDB Atlas) | تنظیمات، فایلهای خصوصی، دادههای کاربران و لینکهای پخش را نگه میدارد. آدرس آن در DATABASE_URL است. |
| Aria2 | داخل app | دانلود لینکهای مستقیم و تورنت. |
| qBittorrent | داخل app | دانلود و سید کردن تورنت (مگر اینکه DISABLE_TORRENTS روشن باشد). |
| SABnzbd | داخل app | دانلود از Usenet (وقتی DISABLE_NZB خاموش باشد). |
| JDownloader | داخل app | دانلود از سایتهای پشتیبانیشدهٔ JDownloader (وقتی DISABLE_JD خاموش باشد و حساب آن تنظیم شده باشد). |
روند کلی یک کار این است: شما دستور را در تلگرام میفرستید، ربات آن را به ابزار مناسب (Aria2، qBittorrent، SABnzbd، JDownloader، yt-dlp و…) میسپارد، فایل در پوشهٔ downloads ذخیره میشود، و بعد ربات آن را به مقصد آپلود میفرستد. اگر قبل از دانلود انتخاب فایل خواسته باشید، لینک رابط وب از طریق تونل در اختیارتان قرار میگیرد.
برای جزئیات راهاندازی، ادامهٔ مستندات را در پیشنیازها و استقرار روی VPS دنبال کنید.
سازندگان و اعتبار
WZML-X یک انشعاب (fork) از پروژهٔ mirror-leech-telegram-bot است. پروژهٔ پایه متعلق به anasty17 و مشارکتکنندگان آن است.
نویسندگان WZML-X طبق README.md مخزن:
| نام | نقش |
|---|---|
| SilentDemonSD | نویسنده، طراحی رابط و قابلیتهای سفارشی |
| RjRiajul | همنویسنده و نگهدارنده |
| CodeWithWeeb | گسترش قابلیتها و بهبودهای تکمیلی |
| Maverick | همنویسنده و آزمایش و رفع اشکال |
کد پروژه تحت مجوز GNU AGPL نسخهٔ ۳ منتشر شده است (فایل LICENSE در مخزن). این سایت یک راهنمای غیررسمی است که طرفداران پروژه نوشتهاند. برای اخبار و پشتیبانی به کانال تلگرام WZML-X و گروه پشتیبانی سر بزنید.