اعلامیههای زمانبندیشده و حالت شب
مقدمه
دو کار رایج برای ادمینها، تکرار یک پیام مشخص طبق برنامه و آرام نگه داشتن گروه در طول شب است. اعلامیههای زمانبندیشده به ربات اجازه میدهند پیامی را بهجای شما، یکبار یا بهصورت تکرارشونده، منتشر کند تا لازم نباشد دوبارهفرستادن قوانین یا یک یادآوری را به خاطر بسپارید. حالت شب گروه را در یک بازه روزانه بیصدا میکند و پس از آن دوباره بازش میکند، تا گفتوگویی در یک منطقه زمانی باعث بیدار شدن اعضای منطقه زمانی دیگر نشود.
هر دو قابلیت بهصورت پیشفرض غیرفعال هستند و تا زمانی که یک ادمین آنها را تنظیم نکند کاری انجام نمیدهند. فعال کردن ربات هرگز باعث نمیشود که خودش شروع به انتشار اعلامیهها یا بیصدا کردن گروه کند.
اعلامیههای زمانبندیشده
ادمین با دستور /announce یک اعلامیه ثبت میکند. اولین واژه بعد از دستور، زمانبندی است و باقی متن، محتوایی است که باید منتشر شود. همه دستورهای اعلامیه فقط مخصوص ادمینها هستند.
برای زمانبندی یک پیام، از یک فاصله تکرار یا واژه once و سپس متن استفاده کنید:
/announce 6h Read the /rules— این پیام را هر ۶ ساعت منتشر میکند./announce once Welcome, the AMA starts at noon.— این پیام را فقط یکبار منتشر میکند و سپس متوقف میشود.
فاصلههای تکرارشونده بهصورت مدتزمان نوشته میشوند. واحدهای پشتیبانیشده شامل دقیقه، ساعت، روز و هفته هستند؛ برای مثال 30m، 6h، 1d و 2w. برای اعلامیههای تکرارشونده یک حداقل ۵ دقیقهای وجود دارد، بنابراین زمانبندی فشردهتر از پنج دقیقه رد میشود. اعلامیههای یکباره (once) از این حداقل مستثنا هستند، چون فقط یکبار اجرا میشوند.
دو زیردستور دیگر، اعلامیههای موجود را مدیریت میکنند:
/announce list— اعلامیههای فعلی گروه را همراه با شناسه هرکدام نشان میدهد./announce del <id>— یک اعلامیه را با شناسهاش حذف میکند؛ برای مثال/announce del 42. حذف به گروه شما محدود است، بنابراین شناسهای از گروهی دیگر بهاشتباه حذف نمیشود.
هر گروه برای تعداد اعلامیههایی که همزمان میتواند داشته باشد یک سقف دارد (20). اگر به این سقف رسیدید، پیش از افزودن مورد جدید، یکی را حذف کنید. پس از ذخیره شدن یک اعلامیه، زمانبند آن را در موعد مقرر منتشر میکند: اعلامیههای تکرارشونده پس از هر انتشار برای اجرای بعدی دوباره زمانبندی میشوند، و اعلامیههای یکباره پس از اجرا خاموش میشوند. اگر ربات در لحظه موعد یک اعلامیه نتواند در گروه منتشر کند (مثلاً ربات حذف شده باشد)، زمانبندی همچنان جلو میرود تا گروه بیپایان دوباره بررسی نشود.
حالت شب
حالت شب همه اعضا را در یک بازه روزانه بیصدا میکند و پس از پایان بازه، امکان ارسال را برمیگرداند. این قابلیت با مجموعهای از تنظیمات در داشبورد گروه کنترل میشود که اصلیترین آن set_night_mode_enabled است و بهصورت پیشفرض خاموش است. این بازه با زمان شروع، زمان پایان و یک اختلاف ساعت نسبت به UTC تعریف میشود که آن زمانها را به ساعت محلی گروه نگاشت میکند.
میتوانید حالت شب را در دو جا پیکربندی کنید:
- داشبورد. گروه را در داشبورد ادمین باز کنید و بازه را در بخش Auto-Moderation تنظیم کنید.
- در چت، با دستور مخصوص ادمینها یعنی
/nightmode.
دستور /nightmode یک بازه و چند گزینه روشن/خاموش را میپذیرد:
/nightmode 22:00-07:00 +1— اعضا را از 22:00 تا 07:00 در گروهی بیصدا میکند که ساعت محلی آن یک ساعت جلوتر از UTC است. بازه میتواند از نیمهشب عبور کند، مانند همین مثال./nightmode on— حالت شب را با استفاده از بازه ذخیرهشده فعال میکند./nightmode off— حالت شب را غیرفعال میکند. اگر گروه در حال حاضر توسط حالت شب بیصدا شده باشد، این کار آن را نیز دوباره باز میکند./nightmode status— بازه فعلی، اختلاف ساعت و اینکه آیا گروه همین حالا بیصداست یا نه را نشان میدهد.
زمانها بر اساس ساعت محلی گروه وارد میشوند، و اختلاف ساعت انتهایی (برای مثال +1 یا -5) یک اختلاف ساعت کامل نسبت به UTC است که به ربات میگوید ساعت محلی گروه چه نسبتی با UTC دارد. یک زمانبند بازه را بررسی میکند و گروه را در مرزهای زمانی قفل یا باز میکند، بنابراین این تغییر هر روز خودبهخود انجام میشود.
ادمینها تحت تأثیر حالت شب قرار نمیگیرند. بیصدا شدن روی اعضای عادی اعمال میشود، بنابراین مدیران و ادمینها همچنان میتوانند وقتی گروه آرام است پیام بفرستند. یعنی یک ادمین حتی در بازه سکوت هم میتواند یک اعلامیه آخرشب ارسال کند.
هماهنگی حالت شب و قفل ضدحمله
حالت شب و محافظت ضدحمله هر دو با قفل کردن مجوزهای ارسال گروه کار میکنند، بنابراین از همان قفل زیربنایی مشترک استفاده میکنند و برای زمان آزاد کردن آن با هم هماهنگ میشوند. اگر بازه حالت شب تمام شود اما قفل ضدحمله هنوز فعال باشد، گروه بهخاطر حمله قفل میماند؛ اگر قفل ضدحمله تمام شود اما بازه حالت شب هنوز فعال باشد، گروه بهخاطر حالت شب قفل میماند. گروه فقط وقتی دوباره باز میشود که هیچکدام از این دو قابلیت نخواهند بسته بماند، بنابراین هیچکدام قفلی را که دیگری هنوز لازم دارد برنمیدارد.
بهترین روشها
- برای یادآوریهای دائمی مانند قوانین گروه از اعلامیه تکرارشونده استفاده کنید، و برای اطلاعیههای محدود به زمان مانند شروع یک رویداد از
once. - با پاک کردن موارد قدیمی از طریق
/announce listو/announce del <id>تعداد اعلامیهها را زیر سقف هر گروه نگه دارید. - اختلاف ساعت حالت شب را با دقت تنظیم کنید تا بازه با ساعت محلی اعضای شما هماهنگ باشد؛ سپس آن را با
/nightmode statusبررسی کنید. - به خاطر داشته باشید که ادمینها همچنان میتوانند در حالت شب پیام بفرستند، بنابراین اگر میخواهید مطمئن شوید بیصدا کردن کار میکند، از یک حساب غیرادمین استفاده کنید.
خلاصه
اعلامیههای زمانبندیشده و حالت شب دو وظیفه تکراری ادمینها را خودکار میکنند. /announce یک پیام را یکبار یا با فاصلهای تکرارشونده منتشر میکند، با کف ۵ دقیقهای برای زمانبندیهای تکرارشونده، سقف برای هر گروه، و زیردستورهای list/del برای مدیریت موارد زمانبندیشده. حالت شب اعضا را در یک بازه روزانه که با ساعت محلی و از طریق اختلاف ساعت کامل نسبت به UTC تنظیم شده بیصدا میکند، به ادمینها اجازه میدهد همچنان پیام بفرستند، و با قفل ضدحمله هماهنگ میشود تا این دو هرگز بر سر قفل گروه با هم تداخل نداشته باشند. هر دو قابلیت تا زمانی که ادمین آنها را روشن نکند خاموش میمانند.