Skip to content

فیلترها

فیلترها با & (AND)، | (OR) و ~ (NOT) ترکیب می‌شوند.

Python
# AND - پیام کاربر خاص در گروه
@client.on_new_message(FromUser("u0abc...") & ChatType("group"))

# OR - گروه یا کانال
@client.on_new_message(ChatType("group") | ChatType("channel"))

# NOT - هر چیزی غیر از خودم
@client.on_new_message(~IsMe())

فیلترهای نوع رویداد

فیلتر
توضیح
IsMessage() پیام جدید
IsEdited() پیام ویرایش شده
IsDeleted() پیام پاک شده

فیلترهای چت و کاربر

فیلتر
توضیح
مثال
ChatType("user") نوع چت ChatType("group")
ChatType(["group", "channel"]) چند نوع
FromChat("id") چت خاص (GUID، نام‌کاربری یا لینک) FromChat("g0abc...")
FromUser("id") کاربر خاص FromUser("@Online_User")
FromBot("id") بات خاص FromBot("@MyBot")
FromActivity("id") فعالیت از کاربر خاص FromActivity("u0abc...")
IsMe() پیام‌های خود کاربر

فیلترهای فایل و مدیا

فیلتر
توضیح
IsText() فقط پیام متنی (بدون فایل)
IsImage() تصویر
IsVideo() ویدئو (غیر گرد)
IsVideoMessage() پیام ویدئویی (ویدئوی گرد)
IsVoice() پیام صوتی (ویس)
IsMusic() فایل موسیقی
IsGif() گیف
IsSticker() استیکر
IsFile() فایل/سند
IsContact() مخاطب
IsLocation() موقعیت مکانی
IsPoll() نظرسنجی
IsLive() پخش زنده

فیلترهای رویداد سیستمی

فیلتر
توضیح
مثال
IsEvent() هر رویداد سیستمی
EventType("type") نوع خاص رویداد EventType("AddedGroupMembers")

انواع رویداد: RemoveGroupMembers, AddedGroupMembers, PinnedMessageUpdated, TitleUpdate, PhotoUpdate, RemovePhoto, SetAutoDelete, JoinedGroupByLink, LeaveGroup, JoinedGroupByRequest, CreateGroupVoiceChat, StopGroupVoiceChat, GroupCreated, ChannelCreated


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

فیلتر
توضیح
IsReply() پیام ریپلای شده
IsForwarded() هر نوع فوروارد
ForwardedFromUser() فوروارد از کاربر
ForwardedFromChannel() فوروارد از کانال
ForwardedFromBot() فوروارد از بات
ForwardedNoLink() فوروارد با هویت مخفی

فیلترهای متن

فیلتر
توضیح
مثال
Text("pattern") متن شامل الگو باشد Text("سلام")
TextMatch("pattern") مانند Text + ذخیره match TextMatch(r"اسم (\w+)")
Command("name") دستور با / شروع شود Command("start")
Command() هر دستوری
Command(["start", "help"]) چند دستور

فیلترهای متادیتا و ری‌اکشن

فیلتر
توضیح
مثال
HasMetadata() پیام فرمت‌دار (Bold, Italic)
MetadataType("Bold") نوع خاص MetadataType(["Bold", "Italic"])
HasReaction() پیام دارای ری‌اکشن

مثال‌های ترکیبی

Python
# فقط تصاویر در گروه
@client.on_new_message(IsImage() & ChatType("group"))
async def group_images(event):
    await event.reply("تصویر در گروه دریافت شد!")

# پیام متنی از کاربر خاص که ریپلای نباشد
@client.on_new_message(FromUser("@Online_User") & IsText() & ~IsReply())
async def text_from_user(event):
    print(f"پیام: {event.text}")

# دستور start یا help
@client.on_new_message(Command(["start", "help"]))
async def commands(event):
    await event.reply("در خدمتم!")

# تشخیص نام با TextMatch
@client.on_new_message(TextMatch(r"اسم من (\w+) هست"))
async def name_catcher(event):
    name = event.pattern_match.group(1)
    await event.reply(f"سلام {name}!")

# رویداد افزودن عضو به گروه
@client.on_message(EventType("AddedGroupMembers"))
async def new_member(event):
    print("کاربر جدید اضافه شد!")

# پیام فوروارد شده از کانال
@client.on_new_message(IsForwarded() & ForwardedFromChannel())
async def forwarded_from_channel(event):
    print("فوروارد از کانال")