کلاس Inline – کانتکست مدیریت رویدادها
کلاس Inline نمایانگر context مربوط به پیامهای اینلاین (inline) دریافتشده از روبیکاست. این کلاس بهصورت خودکار توسط rubika هنگام دریافت رویداد "inline" ساخته شده و به هندلر پاس داده میشود.
فیلدها
| ویژگی | نوع | توضیحات |
|---|---|---|
sender_id | string | آیدی کاربری که پیام را ارسال کرده |
text | string | متن پیام |
file | File? | فایل ضمیمه شده (در صورت وجود) |
location | Location? | موقعیت جغرافیایی ارسالشده (در صورت وجود) |
aux_data | AuxData? | دادههای اضافی (مثل اطلاعات پرداخت، دکمه فشردهشده و...) |
message_id | string | شناسه یکتا برای پیام |
chat_id | string | شناسه چتی که پیام در آن ارسال شده |
store | Record<string, any> | فضای ذخیرهسازی موقتی برای اطلاعات سفارشی در طول هندل |
bot | Bot | دسترسی مستقیم به نمونه ربات برای فراخوانی متدهای سطح پایین |
متدهای پاسخدهی (Reply Methods)
تمامی این متدها بهصورت خودکار به پیام کاربر Reply میدهند (پاسخ متصل).
reply(text, ...options)
ارسال پیام متنی ساده به عنوان پاسخ.
await ctx.reply("سلام! پیام شما دریافت شد.");
replyImage(file, text? , ...options)
ارسال عکس همراه با کپشن.
await ctx.replyImage("path/to/file");
replyVideo(file, text? , ...options)
ارسال ویدیو همراه با کپشن.
await ctx.replyVideo("path/to/file", "این یک ویدیو است.");
replyGif(file, text? , ...options)
ارسال گیف همراه با کپشن.
await ctx.replyGif("path/to/file");
replySticker(sticker_id, ...options)
ارسال استیکر با شناسه اختصاصی.
await ctx.replySticker("sticker_12345");
replyMusic / replyVoice(file, text? , ...options)
ارسال فایل صوتی (موزیک) یا ویس (پیام صوتی).
await ctx.replyMusic("path/to/file", "این یک آهنگ است.");
await ctx.replyVoice("path/to/file");
replyFile(file, text? , ...options)
ارسال هر نوع فایل عمومی (سند، PDF، ZIP و...).
await ctx.replyFile("path/to/file");
replyLocation(latitude, longitude, ...options)
ارسال موقعیت مکانی روی نقشه.
await ctx.replyLocation("35.6997", "51.3380"); // تهران
replyContact(firstName, lastName, phone, ...options)
ارسال کارت تماس (Contact).
await ctx.replyContact("هادی", "رستمی", "989123456789");
replyPoll(question, options, auto_delete?)
ارسال نظرسنجی (Poll) به چت.
await ctx.replyPoll("کدام فریمورک بهتر است؟", ["React", "Vue", "Svelte"]);
⚠ نکته: تمام متدهای بالا از پارامترهای مشترکی مثل chat_keypad (دکمههای شیشهای کیبورد)، inline_keypad (دکمههای زیر پیام)، disable_notification (بیصدا ارسال کردن) و auto_delete (حذف خودکار پس از زمان مشخص) پشتیبانی میکنند.
متدهای مدیریت پیام و چت
forward(to_chat_id: string)
فوروارد کردن پیام فعلی به چت دیگر.
await ctx.forward("b0..."); // ارسال به چت ادمین
delete(message_id?)
حذف پیام (پیشفرض: پیامی که ربات به آن پاسخ میدهد).
await ctx.delete(); // حذف پیام فعلی
await ctx.delete("message_id"); // حذف پیام دیگر
editMessage(text?, inline_keypad?)
ویرایش متن یا کیبورد پیام ارسالی ربات.
await ctx.editMessage("✅ متن ویرایش شد!", myInlineKeypad);
استفاده
import Bot from "rubika";
const bot = new Bot("YOUR_TOKEN");
bot.on("inline", async (ctx) => {
await ctx.reply("درخواست شما دریافت شد.");
});
bot.run();