Skip to main content

pyro-listener
Pyrogram listener
Examples News

Pyrolistener

Message listener example

from pyrogram import Client, filters, types, idle
from pyrolistener import Listener

app = Client("name")

app.start()

listener = Listener(client=app, show_output=True)

@app.on_message(filters.command("start"))
async def _(c: Client, m: types.Message):
    msg = await listener.listen_to(m, "What's your name?", filters=["text"])
    return await msg.reply(f"Your name is {msg.text}")

print("run")
idle()

callbackQuery listener example

@app.on_callback_query()
async def _(c: Client, query: types.CallbackQuery):
    if query.data == "name":
        msg = await listener.listen_to(
            query,
            "Whats Your name ?",
            fiilters=["text"]
        )
        return await msg.reply(f"Your Name is {msg.text}")

TimeOut example

@app.on_message(filters.command("start"))
async def __(c: Client, m: types.Message):
    try:
        msg = await listener.listen_to(
            m,
            "Send your name!",
            reply_markup=types.ForceReply(selective=True, placeholder="Your name"),
            filters=["text"],
            timeout=10
        )
    except exceptions.TimeOut:
        msg = None
        print("Time Out !")
        await m.reply("Time Out", quote=True)
    if msg:
        await msg.reply(f"Your name is {msg.text}", quote=True)
        # to delete client question message:
        await msg.output.delete()

Advnced listener example

@app.on_message(filters.photo)
async def _(c: Client, m: types.Message):
    await m.reply_photo(m.photo.file_id, caption="are you sure to add an button to the photo? send Y/N")
    msg = await listener.listen(
        m.chat.id,
        from_id=m.from_user.id,
        filters=["text"]
    )
    if msg.text.lower() == "y":
        return await msg.reply_photo(
            m.photo.file_id,
            reply_markup=types.InlineKeyboardMarkup(
                [[types.InlineKeyboardButton("button", "callback")]]
            )
        )
    elif msg.text.lower() == "n":
        return await msg.reply("Okay")
    else:
        return await msg.reply("Wrong choice")

Filters type example

@app.on_message(filters.command("ask") & filters.group)
async def _(c: Client, message: types.Message):
    msg = await listener.listen(
        chat_id=message.chat.id,
        text="What's your name",
        filters=["sender_chat", "text"],
        filters_type=2
    ) # will only listen to an message has "sender_chat" and "text" attribute
    msg = await listener.listen(
        chat_id=message.chat.id,
        text="What's your name",
        filters=["sender_chat", "text"],
        filters_type=1
    ) # will listen to any messgae has "sender_chat" or "text" attribute
    return await msg.reply(f"Youe name is {msg.text}")

Installing

pip3 install -U pyro-listener

Community

Examples

Release files for pyro-listener 2023.9.19

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyro-listener 2023.9.19
File Size Uploaded
pyro-listener-2023.9.19.tar.gz 5.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pyro-listener 2023.9.19
File Interpreter ABI Platform
pyro_listener-2023.9.19-py3-none-any.whl Python 3 none any Details

Total release size: 10.4 kB

Release files / pyro-listener-2023.9.19.tar.gz

Download URL pyro-listener-2023.9.19.tar.gz
Size 5.0 kB
Tags Source
SHA-256 checksum
How to use checksums
58ae3d35f6d03e4f928612a0f8a7cd05069fa4fd9c402d096df53150aa3f9099
BLAKE2b-256 checksum
How to use checksums
3671e45b3183c5dee146de642a26f0c49d2022778f6d92608f0e26d2b4090a62
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.6

Release files / pyro_listener-2023.9.19-py3-none-any.whl

Download URL pyro_listener-2023.9.19-py3-none-any.whl
Size 5.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
74d1829b4a3c63f36d1c5e9161bf281d8c7587ade36e88a667d7c2570655f285
BLAKE2b-256 checksum
How to use checksums
453e6d7de4834c459f65ede38ec36e7f23d0f0bd83ec93eb5a68af527980c05b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.6

Release history Release notifications | RSS feed

This release

2023.9.19 This release

2 release files

2.5

2 release files

2.0

2 release files

1.5

2 release files

1.4

2 release files

1.3

2 release files

1.2

2 release files

1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page