search_messages()¶
-
Client.search_messages()¶ Search for text and media messages inside a specific chat.
- Parameters
chat_id (
int|str) – Unique identifier (int) or username (str) of the target chat. For your personal cloud (Saved Messages) you can simply use “me” or “self”. For a contact that exists in your Telegram address book you can use his phone number (str).query (
str, optional) – Text query string. Required for text-only messages, optional for media messages (see thefilterargument). When passed while searching for media messages, the query will be applied to captions. Defaults to “” (empty string).offset (
int, optional) – Sequential number of the first message to be returned. Defaults to 0.filter (
str, optional) –Pass a filter in order to search for specific kind of messages only:
"empty": Search for all kind of messages (default)."photo": Search for photos."video": Search for video."photo_video": Search for either photo or video."document": Search for documents (generic files)."url": Search for messages containing URLs (web links)."animation": Search for animations (GIFs)."voice_note": Search for voice notes."audio": Search for audio files (music)."chat_photo": Search for chat photos."phone_call": Search for phone calls."audio_video_note": Search for either audio or video notes."video_note": Search for video notes."mention": Search for messages containing mentions to yourself."location": Search for location messages."contact": Search for contact messages."pinned": Search for pinned messages.
limit (
int, optional) – Limits the number of messages to be retrieved. By default, no limit is applied and all messages are returned.from_user (
int|str) – Unique identifier (int) or username (str) of the target user you want to search for messages from.
- Returns
Generator– A generator yieldingMessageobjects.
Example
# Search for text messages in @pyrogramchat. Get the last 333 results for message in app.search_messages("pyrogramchat", query="dan", limit=333): print(message.text) # Search for pinned messages in @pyrogramchat for message in app.search_messages("pyrogramchat", filter="pinned"): print(message.text) # Search for messages containing "hi" sent by @haskell in @pyrogramchat for message in app.search_messages("pyrogramchat", "hi", from_user="haskell"): print(message.text)