تنظیمات و شبیهساز
تنظیمات ربات /bsetting
منوی /bsetting (یا /bs) مخصوص مالک ربات و کاربران سودو است. همهٔ متغیرهای پیکربندی را بدون ریاستارت و بدون ویرایشconfig.py عوض میکند و تغییرها را در دیتابیس نگه میدارد. شبیهساز زیر همان صفحههای ربات را با تنظیمات یک استقرار تازه نشان میدهد.
در حال بارگذاری شبیهساز…
/bsetting
ربات منتظر پیام شماست
ربات فقط ۶۰ ثانیه منتظر میماند و هر ۸ ثانیه سطر آخر پیام را با زمان باقیمانده بازنویسی میکند؛ در این کار قالببندی بقیهٔ سطرها از بین میرود. شبیهساز همین رفتار را نشان میدهد.
تورهای آموزشی
شبیهساز خودش دکمهها را میزند و هر گام را توضیح میدهد.
بخشهای منو
تنظیمات ربات
نمایش در شبیهساز/bsetting
این منو با /bsetting (یا /bs) باز میشود و فقط مالک ربات و کاربران سودو به آن دسترسی دارند. هر تغییری اینجا روی کل ربات و همهٔ کاربران اثر میگذارد و اگر DATABASE_URL تنظیم شده باشد، در MongoDB هم ذخیره میشود تا پس از ریاستارت بماند.
Config Variables متغیرهای پیکربندی را صفحهبهصفحه نشان میدهد، Module Settings ماژولها را روشن و خاموش و سقفها را تنظیم میکند، و Private Files فایلهای خصوصی مثل config.py و rclone.conf را مدیریت میکند. Qbit Settings، Aria2c Settings و Sabnzbd Settings تنظیمات زندهٔ همان برنامهها را نشان میدهند و JDownloader Sync از تنظیمات JDownloader نسخهٔ پشتیبان در دیتابیس میگیرد. Close منو و پیام دستور را پاک میکند.
متغیرهای پیکربندی
نمایش در شبیهساز/bsetting › Config Variables
این صفحه متغیرهای پیکربندی ربات را به ترتیب تعریفشان در کد، دهتادهتا نشان میدهد. متغیرهای DISABLE_* و سقفهای بخش Limit Settings اینجا نیستند و از Module Settings تنظیم میشوند. با زدن نام هر متغیر، صفحهٔ آن (توضیح، مقدار فعلی و دکمههای ویرایش) باز میشود.
ردیف شمارههای پایین برای صفحهبندی است: هر عدد یک صفحهٔ دهتایی را باز میکند و عنوان پیام (Page: N) شمارهٔ صفحهٔ فعلی را نشان میدهد. Back به منوی اصلی برمیگردد و صفحهبندی را از اول شروع میکند.
تنظیمات ماژولها
نمایش در شبیهساز/bsetting › Module Settings
این صفحه دو زیربخش دارد: On/Off Settings قابلیتهای بزرگ ربات مثل تورنت، لیچ، میرور، JDownloader یا SABnzbd را روشن و خاموش میکند، و Limit Settings سقف حجم و تعداد را برای انواع تسکها تعیین میکند.
هر دو در واقع همان متغیرهای DISABLE_* و *_LIMIT را تغییر میدهند که در فهرست Config Variables نمایش داده نمیشوند.
فایلهای خصوصی
نمایش در شبیهساز/bsetting › Private Files
داشبورد نشان میدهد هر فایل خصوصی در پوشهٔ کاری ربات هست (Exists) یا نه: config.py (پیکربندی اصلی)، token.pickle (توکن گوگل درایو مالک)، rclone.conf (کانفیگ Rclone مالک)، accounts.zip (سرویساکانتهای گوگل)، list_drives.txt (درایوهای اضافه برای جستوجو؛ هر خط name drive_id [index_url])، shortener.txt (کوتاهکنندههای لینک؛ هر خط domain api_key)، categories.txt (دستهبندیهای آپلود گوگل درایو)، cookies.txt (کوکی پیشفرض yt-dlp)، terabox.txt (کوکی TeraBox) و .netrc (اطلاعات ورود سایتها برای Aria2 و yt-dlp).
با Add/Delete File ظرف ۶۰ ثانیه یک فایل را بهصورت سند بفرستید تا با همان نام ذخیره یا جایگزین شود، یا نام فایلی را بهصورت متن بفرستید تا پاک شود (config.py پاک نمیشود). با Create New File متنی بفرستید که خط اولش نام فایل و بقیهاش محتوای آن باشد. ربات فایل را فوراً به کار میگیرد: accounts.zip باز و USE_SERVICE_ACCOUNTS روشن میشود (و با حذفش خاموش)، .netrc در جای خود کپی میشود (برای Aria2 فقط پس از ریاستارت)، config.py دوباره بارگذاری میشود، rclone.conf سرور rclone serve را از نو راه میاندازد و list_drives.txt، shortener.txt و categories.txt دوباره خوانده میشوند. فایل در دیتابیس هم ذخیره میشود و Stop Invoke File انتظار را لغو میکند.
اگر UPSTREAM_REPO شامل @github.com باشد (یعنی توکن گیتهاب در آدرس آمده)، پس از فرستادن هر فایل بهصورت سند، ربات میپرسد Push to UPSTREAM_REPO ?. با Yes! فایل با git add -f، یک commit و git push -f به شاخهٔ UPSTREAM_BRANCH فرستاده میشود؛ با No چیزی push نمیشود. در هر دو حالت سؤال و پیام فایل شما پاک میشوند. اگر این پرسش در کار نباشد، پیام شما بلافاصله پس از ذخیره پاک میشود.
تنظیمات qBittorrent
نمایش در شبیهساز/bsetting › Qbit Settings
این فهرست تنظیمات (preferences) برنامهٔ qBittorrent در حال اجراست که ربات از API آن خوانده؛ listen_port و گزینههای RSS کنار گذاشته شدهاند. صفحهبندی دهتایی است و شمارهها از 0 شروع میشوند؛ عنوان پیام صفحه و حالت (State) را نشان میدهد.
در حالت view زدن هر گزینه مقدارش را در هشدار (یا فایل .txt اگر بلند باشد) نشان میدهد؛ Edit حالت ویرایش را فعال میکند تا زدن گزینه صفحهٔ ارسال مقدار جدید را باز کند، و View برمیگرداند. Sync Qbittorrent فهرست ذخیرهشده را دور میریزد، تنظیمات را دوباره از qBittorrent میخواند و در دیتابیس ذخیره میکند؛ این کار وقتی مفید است که تنظیمات را بیرون از ربات (مثلاً در WebUI) عوض کرده باشید.
تنظیمات Aria2c
نمایش در شبیهساز/bsetting › Aria2c Settings
این فهرست گزینههای سراسری (global options) برنامهٔ Aria2c در حال اجراست، همراه با تغییراتی که قبلاً از همین منو ذخیره شدهاند. گزینهها دهتادهتا نمایش داده میشوند و ردیف شمارههای پایین (از 0) برای صفحهبندی است؛ عنوان پیام شمارهٔ صفحه و حالت فعلی (State: view یا State: edit) را نشان میدهد. گزینههای مخصوص هر دانلود (checksum، index-out، out، pause و select-file) فهرست نمیشوند.
در حالت view زدن هر گزینه مقدار فعلیاش را در یک هشدار نشان میدهد (اگر بیش از ۲۰۰ کاراکتر باشد، بهصورت فایل .txt). Edit حالت ویرایش را فعال میکند تا زدن گزینه صفحهٔ ارسال مقدار جدید را باز کند، و View برمیگرداند؛ این حالت بین صفحههای Aria2c، qBittorrent، SABnzbd و سرورهای یوزنت مشترک است. Add new key در هر دو حالت گزینهای را اضافه میکند که در فهرست نیست. مقدارهای تازه روی Aria2c سراسری و دانلودهای جاری اعمال و در دیتابیس ذخیره میشوند.
تنظیمات SABnzbd
نمایش در شبیهساز/bsetting › Sabnzbd Settings
این فهرست بخش misc تنظیمات SABnzbd در حال اجراست. ربات فقط وقتی آن را میخواند که SABnzbd غیرفعال نباشد و دستکم یک سرور در USENET_SERVERS تعریف شده باشد. صفحهبندی و حالتهای view/edit مثل صفحهٔ Aria2c است: در view مقدار هر گزینه در هشدار دیده میشود و پس از Edit، زدن گزینه صفحهٔ ارسال مقدار جدید را باز میکند.
Servers فهرست سرورهای یوزنت را باز میکند. Sync Sabnzbd تنظیمات را دوباره از SABnzbd میخواند و فایل SABnzbd.ini را در دیتابیس ذخیره میکند؛ اگر USENET_SERVERS خالی باشد، فقط پیام Synchronization Paused. No USENET_SERVERS is provided ! نمایش داده میشود.
روشن و خاموش کردن ماژولها
نمایش در شبیهساز/bsetting › Module Settings › On/Off Settings
هر دکمه یک ماژول است و نامش همان متغیر DISABLE_* بدون پیشوند است؛ مثلاً TORRENTS یعنی DISABLE_TORRENTS. دکمهٔ آبی با ✓ یعنی ماژول فعال است (متغیر False) و دکمهٔ قرمز بدون ✓ یعنی ماژول غیرفعال است (متغیر True). زدن هر دکمه متغیر متناظر را برعکس میکند؛ تغییر فوراً اعمال و در دیتابیس ذخیره میشود و صفحه با رنگ و علامت تازه دوباره ساخته میشود.
برای چند ماژول، این کلید کار بیشتری هم میکند: خاموش کردن JD برنامهٔ JDownloader را متوقف میکند و روشن کردنش آن را دوباره راه میاندازد؛ خاموش کردن NZB صف SABnzbd را متوقف و برنامه را میبندد، ولی روشن کردن دوبارهاش ریاستارت لازم دارد. STREAM سرور استریم، RSS زمانبند RSS و PLUGINS پلاگینها را همزمان متوقف یا راهاندازی میکنند.
سقفها
نمایش در شبیهساز/bsetting › Module Settings › Limit Settings
این پیام «پیام غنی» (Rich Message) تلگرام است: عنوان Limit Settings، شمارندهٔ سقفهای فعال (مثل 2 of 19 active)، جدول Active limits که فقط سقفهای غیرصفر را با واحدشان نشان میدهد (اگر هیچ سقفی نباشد، جملهٔ No limits set, everything is unlimited.)، و بخش تاشوی How this works. طبق همان راهنما، اندازهها به گیگابایتاند مگر واحد دیگری در جدول آمده باشد، CPU_LIMIT درصد و STATUS_LIMIT تعداد پیام است، فرستادن 0 سقف را برمیدارد و سقفها برای هر تسک اعمال میشوند، نه برای هر کاربر.
دکمهها نام کوتاه هر سقفاند (DIRECT برای DIRECT_LIMIT، GD DL برای GD_DL_LIMIT و مانند آن) و صفحهٔ همان متغیر را باز میکنند؛ دکمهٔ سبز یعنی آن سقف مقدار دارد. ۱۹ سقف در دو صفحهاند: ⫸ صفحهٔ بعد و ⫷ صفحهٔ قبل را نشان میدهد و پاورقی پیام شمارهٔ صفحه را میگوید.
سرورهای یوزنت
نمایش در شبیهساز/bsetting › Sabnzbd Settings › Servers
این صفحه سرورهای یوزنت تعریفشده در USENET_SERVERS را با نامشان فهرست میکند؛ با زدن هر نام، کلیدهای آن سرور باز میشوند. اگر بیش از ده سرور باشد، شمارههای صفحهبندی هم اضافه میشوند.
Add New صفحهٔ افزودن سرور را باز میکند: یک سرور را بهصورت دیکشنری، همانطور که در config.py مینویسید ولی بدون []، بفرستید. ربات سرور را به SABnzbd اضافه میکند، در USENET_SERVERS میگذارد و در دیتابیس ذخیره میکند. Back به تنظیمات SABnzbd برمیگردد.
توضیح تکتک متغیرها در مرجع کامل متغیرها آمده است. با یابندهٔ تنظیمات هم میتوانید جای هر متغیر را در این منو پیدا کنید.