شروع

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-dlpYouTube، لینک‌های 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 و گروه پشتیبانی سر بزنید.

مثلاً LEECH_SPLIT_SIZE، /mirror، -up یا «تامبنیل»