Skip to main content

Pyrogram listener

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyro-listener-2023.9.19.tar.gz (5.0 kB view details)

Uploaded Source

Built Distribution

pyro_listener-2023.9.19-py3-none-any.whl (5.4 kB view details)

Uploaded Python 3

File details

Details for the file pyro-listener-2023.9.19.tar.gz.

File metadata

  • Download URL: pyro-listener-2023.9.19.tar.gz
  • Upload date:
  • Size: 5.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for pyro-listener-2023.9.19.tar.gz
Algorithm Hash digest
SHA256 58ae3d35f6d03e4f928612a0f8a7cd05069fa4fd9c402d096df53150aa3f9099
MD5 9f673e8ab0597e1f3100b35eb36caa83
BLAKE2b-256 3671e45b3183c5dee146de642a26f0c49d2022778f6d92608f0e26d2b4090a62

See more details on using hashes here.

File details

Details for the file pyro_listener-2023.9.19-py3-none-any.whl.

File metadata

File hashes

Hashes for pyro_listener-2023.9.19-py3-none-any.whl
Algorithm Hash digest
SHA256 74d1829b4a3c63f36d1c5e9161bf281d8c7587ade36e88a667d7c2570655f285
MD5 777176a83f45c2ccf20bb878d7d58fac
BLAKE2b-256 453e6d7de4834c459f65ede38ec36e7f23d0f0bd83ec93eb5a68af527980c05b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page