فیلترهای حساب کاربری
این فیلترها برای شناسایی و مدیریت پیامها در ربات مورد استفاده قرار میگیرند. هر فیلتر یک ویژگی خاص از پیام را بررسی میکند و در صورت مطابقت، مقدار True برمیگرداند.
📌 is_pinned¶
بررسی میکند که آیا پیام سنجاقشده (Pinned) است یا خیر.
🔕 is_mute¶
تشخیص میدهد که آیا گفتگو روی سایلنت (Mute) قرار دارد یا نه.
🔢 count_unseen¶
نمایش تعداد پیامهای خواندهنشده در یک گفتگو.
🆔 message_id¶
شناسهی یکتا برای هر پیام.
👥 is_group¶
تشخیص میدهد که پیام در یک گروه ارسال شده است.
👤 is_private¶
تشخیص میدهد که پیام در یک چت خصوصی ارسال شده است.
📣 is_channel¶
بررسی میکند که پیام از یک کانال آمده باشد.
📇 is_in_contact¶
بررسی میکند که آیا فرستندهی پیام در لیست مخاطبین شما قرار دارد یا نه.
📝 text¶
تشخیص میدهد که پیام از نوع متنی باشد.
📨 original_update¶
حاوی اطلاعات خام و اصلی آپدیت دریافتشده از سرور.
🆔 object_guid¶
شناسهی یکتا برای چت (گروه/کانال/خصوصی).
🆔 author_guid¶
شناسهی یکتا برای فرستندهی پیام.
⏰ time¶
زمان ارسال پیام (Timestamp).
↩️ reply_message_id¶
شناسهی پیام در صورتی که این پیام ریپلای (پاسخ) به پیام دیگری باشد.
🙋 is_me¶
تشخیص میدهد که پیام توسط خود شما (ربات/کلاینت) ارسال شده باشد.
📤 is_forward¶
بررسی میکند که پیام از جایی دیگر فوروارد شده باشد.
🎉 is_event¶
پیامهای سیستمی یا رویدادها مانند اضافه شدن/خروج کاربر.
📝 is_text¶
بررسی میکند که پیام شامل متن باشد.
🎵 music¶
بررسی میکند که پیام شامل یک فایل موسیقی (MP3 و مشابه) باشد.
📂 file¶
بررسی میکند که پیام شامل یک فایل (Document) باشد.
🖼️ photo¶
تشخیص میدهد که پیام یک عکس باشد.
🎥 video¶
تشخیص میدهد که پیام یک ویدیو باشد.
🎤 voice¶
تشخیص میدهد که پیام یک ویس (Voice Message) باشد.
👤 contact¶
تشخیص میدهد که پیام شامل یک مخاطب (Contact Card) باشد.
📍 location¶
تشخیص میدهد که پیام شامل یک موقعیت مکانی (Location) باشد.
📊 poll¶
بررسی میکند که پیام شامل یک نظرسنجی (Poll) باشد.
🎞️ gif¶
تشخیص میدهد که پیام یک گیف متحرک باشد.
🏷️ sticker¶
تشخیص میدهد که پیام یک استیکر باشد.
یک مثال ساده¶
بررسی میکنیم که آیا پیام ورودی متن است یا خیر:
from rubpy import Client, filters
app = Client("my_account")
@app.on_message_updates(filters.is_text)
async def on_new_text(update):
await update.reply(update.text)
app.run()
چگونه فیلتر بسازیم؟¶
با توجه به مثال زیر، شما میتوانید فیلترهای اختصاصی خود را طراحی کنید:
async def custom_filter(update, result):
return update.text