Pins
Methods for pinning and unpinning messages.
pin_chat_message
Pin a message in a chat.
await bot.pin_chat_message(
chat_id=chat_id,
message_id=message_id,
disable_notification=True # Don't notify members
)
unpin_chat_message
Unpin a specific message.
unpin_all_chat_messages
Unpin all messages in a chat.
Getting Pinned Message
chat = await bot.get_chat(chat_id=chat_id)
if chat.pinned_message:
print(f"Pinned message ID: {chat.pinned_message.id}")
print(f"Text: {chat.pinned_message.text}")
Pin with Notification
# Notify all members about the pinned message
await bot.pin_chat_message(
chat_id=chat_id,
message_id=message_id,
disable_notification=False
)
Use Cases
Pin Welcome Message
@bot.on_message(filters.command("start"))
async def cmd_start(message):
welcome = await bot.send_message(
chat_id=message.chat.id,
text="Welcome to the group!"
)
# Pin the welcome message
await bot.pin_chat_message(
chat_id=message.chat.id,
message_id=welcome.id,
disable_notification=True
)
Pin Important Announcement
@bot.on_message(filters.command("announce") & filters.admin)
async def announce(message):
# Forward announcement and pin it
pinned = await message.reply_to_message.forward(
chat_id=message.chat.id
)
await bot.pin_chat_message(
chat_id=message.chat.id,
message_id=pinned.id,
disable_notification=False
)
Unpin Old Messages
@bot.on_message(filters.command("clean_pins"))
async def clean_pins(message):
if not await is_admin(message):
return
await bot.unpin_all_chat_messages(
chat_id=message.chat.id
)
await message.reply("All pins cleared!")