دکمه¶
گزینهای قابل لمس در منوی تلگرام. دکمه یک name دارد و با لمس شدن،
تابعی را روی سرور اجرا میکند و نتیجه را به گفتگو میفرستد.
دکمهها و دستهها با هم درخت منو را زیر کلید
سطح بالای menu در فایل پیکربندی میسازند. دکمه کار را
انجام میدهد؛ دسته فقط یک زیرمنو باز میکند.
ظاهر دکمه¶
دکمهها روی صفحهکلید زیر کادر پیام ظاهر میشوند؛ بهطور پیشفرض دو دکمه در هر ردیف. نامی که انتخاب میکنید متن روی کلید است، پس آن را برای خواندن روی گوشی بهاندازهٔ کافی کوتاه نگه دارید. منو ← ظاهر منوی تلگرام را ببینید.
اجزای دکمه¶
هر خط یک بخش از دکمه را کنترل میکند
- name: Restart nginx # (1)!
type: button # (2)!
icon: "🔄" # (3)!
function: command # (4)!
command: "systemctl restart nginx" # (5)!
confirm: true # (6)!
- متن روی کلید در تلگرام. باید میان گزینههای همسطح خود در همان منو یکتا باشد.
- اینجا همیشه
buttonاست. برای زیرمنو ازcategoryاستفاده کنید. - ایموجی اختیاری پیش از نام. فقط تزئینی است و چیزی را در اجرا تغییر نمیدهد.
- تابع مورد استفاده.
commandتابع توکاری است که فرمان شِل اجرا میکند. - چیزی که تابع
commandاجرا میکند. هرچه بتوانید در ترمینال بنویسید، اینجا کار میکند. - اختیاری. پیش از اجرا میپرسد «مطمئن هستید؟». برای کارهایی که فقط اطلاعات میخوانند آن را حذف کنید.
با لمس دکمه چه رخ میدهد¶
- ربات خط کوتاه Running را میفرستد تا بدانید کار شروع شده است.
- فرمان روی دستگاهی اجرا میشود که ربات در آن در حال اجراست.
- خروجی بهشکل بلوک کد، همراه کد خروج و مدت اجرا برمیگردد. خروجی کوتاه در
یک یا چند پیام در گفتگو میماند؛ خروجی بلندتر میتواند بهصورت فایل
.txtبیاید (نتیجهٔ بلند بهصورت فایل را ببینید). - در همان منو میمانید؛ بنابراین Back همچنان شما را از آن دسته بیرون میبرد.
دکمههای رایج¶
آیکونها¶
icon یک ایموجی پیش از نام میگذارد. کاملاً ظاهری است؛ پس هر زمان میتوانید
آن را بدون دست زدن به کاری که دکمه اجرا میکند تغییر دهید یا حذف کنید.
آیکون فقط برچسب را تغییر میدهد
پرسش پیش از دکمههای پرخطر¶
confirm: true را بیفزایید تا ربات ابتدا Yes یا Cancel بپرسد. برای هر کاری
که سرویسی را متوقف، دادهای را حذف یا دستگاه را راهاندازی مجدد میکند از
آن استفاده کنید. پیام پس از مدتی منقضی میشود (پیشفرض پنج دقیقه).
برای موارد مناسب و تغییر زمان انتظار، تأیید را بخوانید.
تنظیمات تنها برای یک دکمه¶
بیشتر تنظیمات سراسری را میتوان روی یک دکمه بازنویسی کرد؛ وقتی یک کار با بقیه متفاوت است، این قابلیت مفید خواهد بود:
بازنویسی تنظیمات یک کار کند
timeout زمان بیشتری برای پایان این فرمان میدهد، workdir دایرکتوری اجرا
را تعیین میکند و env فقط برای همین فرمان متغیر محیطی میافزاید.
نتیجهٔ بلند بهصورت فایل¶
روی دکمه لازم نیست output بنویسید. اگر ننویسید، دکمه تنظیم ریشه را میگیرد
(auto مگر خودتان عوض کرده باشید): نتیجهٔ کوتاه پیام چت میماند و اگر بیش از
دو پیام لازم باشد یک فایل .txt میآید. output را فقط وقتی روی دکمه بگذارید
که همان دکمه همیشه فایل یا همیشه متن باشد. max_output_messages روی دکمه
قابل تنظیم نیست.
روی دکمهای که همیشه خروجی زیاد دارد (مثلاً لاگ) مقدار output: file بگذارید، یا با
output: text فقط برای همان دکمه رفتار قدیمی تکهتکه را نگه دارید.
کلیدهای ریشهٔ output و max_output_messages در
پیکربندی → مقدار خروجی فرمان
مستند شدهاند. کنترل خروجی همهٔ ترکیبهای ریشه و دکمه
را با یک نمونه برای هرکدام مرور میکند.
مقادیر تابع¶
مقادیر تابع را مستقیم روی دکمه بنویسید. command، path و args فیلدهای
میانبری برای پارامترهایی با همین نام هستند. نامهای سفارشی مانند url،
host، unit و lines نیز به همین شکل کار میکنند.
فرستادن مقادیر سفارشی
این مقادیر را درون params: نگذارید. هر کلید باید با پارامتری که تابع
انتخابشده تعریف کرده مطابقت داشته باشد. validate
نامهای ناشناخته، مقادیر الزامی گمشده و مقادیر نامعتبر int یا bool را
گزارش میکند.
پیکربندی¶
برای همهٔ فیلدهایی که دکمه میپذیرد، پیکربندی ← منو را ببینید.
مرتبط¶
-
دسته
بهجای اجرای کاری، زیرمنو باز میکند.
-
تابع
چیزی که با لمس دکمه واقعاً اجرا میشود.
-
پارامتر
مقادیری که تابع از دکمه نیاز دارد.
-
منو
ساخت و سازماندهی کل درخت.
-
کنترل خروجی
پیام در برابر فایل
.txtو اینکه دکمه چگونه ریشه را بازنویسی میکند.