پرش به مطلب اصلی

کلاس BotFilters – فیلترهای پیش‌ساخته

کلاس BotFilters مجموعه‌ای از فیلترهای ساده و کاربردی برای تشخیص نوع پیام دریافتی در ربات است. این فیلترها به‌صورت متدهای استاتیک پیاده‌سازی شده‌اند تا بتوان از آن‌ها مستقیماً در هندلرها یا شرط‌ها استفاده کرد.

وابستگی‌ها:

  • Message: ساختار پیام استاندارد در RubJS
  • ClientFilters.findKey(...): متدی برای بررسی وجود کلید خاص در پیام

فیلترهای پایه

isText(message): boolean

بررسی می‌کند که آیا پیام دارای محتوای متنی (text) است یا خیر.


isLocation(message): boolean

بررسی وجود موقعیت مکانی (location) در پیام.


isSticker(message): boolean

تشخیص اینکه پیام حاوی استیکر است.


isForward(message): boolean

بررسی اینکه پیام از کاربر دیگری فوروارد شده (forwarded_from) است یا نه.


isReply(message): boolean

تشخیص اینکه پیام یک پاسخ (reply_to_message_id) به پیام دیگری است یا خیر.


isContact(message): boolean

بررسی وجود مخاطب (contact_message) در پیام.


isPoll(message): boolean

تشخیص اینکه پیام شامل نظرسنجی (poll) است.


isLiveLocation(message): boolean

بررسی اینکه پیام شامل موقعیت مکانی زنده (live_location) است یا نه.


isFile(message): boolean

بررسی اینکه پیام حاوی فایل (file) است یا خیر.


isDelete(message): boolean

تشخیص اینکه آیا پیام مربوط به حذف یک پیام دیگر است (removed_message_id).


فیلترهای قابل سفارشی‌سازی

kypadID(button_id: string): (message: Message) => boolean

فیلتر داینامیکی برای بررسی مقدار button_id در پیام. خروجی این تابع یک تابع دیگر است که می‌توان آن را مستقیماً در شرط‌ها یا هندلرها استفاده کرد.

مثال:


const { Bot } = require("rubjs");

const bot = new Bot("YOUR_TOKEN");

bot.on("message", [BotFilters.kypadID("confirm_delete"), BotFilters.isDelete], (ctx) => {
console.log(ctx);
});

bot.run()