Skip to content

Commit 190fb99

Browse files
committed
Add examples for new Bot API 9.5 features (message drafts, chat member tags, date_time entity)
1 parent 1ef9b37 commit 190fb99

6 files changed

Lines changed: 106 additions & 4 deletions

File tree

examples/asynchronous_telebot/chat_member_example.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,17 @@ async def my_chat_m(message: types.ChatMemberUpdated):
3030
@bot.message_handler(content_types=util.content_type_service)
3131
async def delall(message: types.Message):
3232
await bot.delete_message(message.chat.id,message.message_id)
33+
34+
35+
@bot.message_handler(commands=['set_tag'])
36+
async def set_tag(message: types.Message):
37+
tag = util.extract_arguments(message.text)
38+
if tag is None:
39+
await bot.reply_to(message, "Usage: /set_tag your_tag")
40+
return
41+
await bot.set_chat_member_tag(message.chat.id, message.from_user.id, tag=tag)
42+
await bot.reply_to(message, f"Tag updated: {tag}")
43+
44+
3345
import asyncio
3446
asyncio.run(bot.polling(allowed_updates=util.update_types))

examples/asynchronous_telebot/formatting_example.py

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from telebot.async_telebot import AsyncTeleBot
2-
from telebot import formatting
2+
from telebot import formatting, types
33

44
bot = AsyncTeleBot('token')
55

@@ -50,5 +50,22 @@ async def start_message(message):
5050
parse_mode='HTML'
5151
)
5252

53+
# Bot API 9.5: date_time entity example
54+
date_text = "2026-03-01 12:00:00"
55+
text = f"Local time: {date_text}"
56+
await bot.send_message(
57+
message.chat.id,
58+
text,
59+
entities=[
60+
types.MessageEntity(
61+
type='date_time',
62+
offset=len("Local time: "),
63+
length=len(date_text),
64+
unix_time=1772366400,
65+
date_time_format='short'
66+
)
67+
]
68+
)
69+
5370
import asyncio
54-
asyncio.run(bot.polling())
71+
asyncio.run(bot.polling())
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import asyncio
2+
3+
from telebot.async_telebot import AsyncTeleBot
4+
5+
bot = AsyncTeleBot("TOKEN")
6+
7+
8+
@bot.message_handler(commands=['draft'])
9+
async def send_draft(message):
10+
if message.chat.type != 'private':
11+
await bot.reply_to(message, "This example works in private chats.")
12+
return
13+
14+
draft_id = message.from_user.id
15+
await bot.send_message_draft(message.chat.id, draft_id, "Generating response...")
16+
await asyncio.sleep(1)
17+
await bot.send_message_draft(message.chat.id, draft_id, "Still working...")
18+
await asyncio.sleep(1)
19+
await bot.send_message(message.chat.id, "Done.")
20+
21+
22+
asyncio.run(bot.polling())

examples/chat_member_example.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,16 @@ def my_chat_m(message: types.ChatMemberUpdated):
3030
@bot.message_handler(content_types=util.content_type_service)
3131
def delall(message: types.Message):
3232
bot.delete_message(message.chat.id,message.message_id)
33+
34+
35+
@bot.message_handler(commands=['set_tag'])
36+
def set_tag(message: types.Message):
37+
tag = util.extract_arguments(message.text)
38+
if tag is None:
39+
bot.reply_to(message, "Usage: /set_tag your_tag")
40+
return
41+
bot.set_chat_member_tag(message.chat.id, message.from_user.id, tag=tag)
42+
bot.reply_to(message, f"Tag updated: {tag}")
43+
44+
3345
bot.infinity_polling(allowed_updates=util.update_types)

examples/formatting_example.py

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from telebot import TeleBot
2-
from telebot import formatting
2+
from telebot import formatting, types
33

44
bot = TeleBot('TOKEN')
55

@@ -50,4 +50,21 @@ def start_message(message):
5050
parse_mode='HTML'
5151
)
5252

53-
bot.infinity_polling()
53+
# Bot API 9.5: date_time entity example
54+
date_text = "2026-03-01 12:00:00"
55+
text = f"Local time: {date_text}"
56+
bot.send_message(
57+
message.chat.id,
58+
text,
59+
entities=[
60+
types.MessageEntity(
61+
type='date_time',
62+
offset=len("Local time: "),
63+
length=len(date_text),
64+
unix_time=1772366400,
65+
date_time_format='short'
66+
)
67+
]
68+
)
69+
70+
bot.infinity_polling()
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import time
2+
3+
import telebot
4+
5+
bot = telebot.TeleBot("TOKEN")
6+
7+
8+
@bot.message_handler(commands=['draft'])
9+
def send_draft(message):
10+
if message.chat.type != 'private':
11+
bot.reply_to(message, "This example works in private chats.")
12+
return
13+
14+
draft_id = message.from_user.id
15+
bot.send_message_draft(message.chat.id, draft_id, "Generating response...")
16+
time.sleep(1)
17+
bot.send_message_draft(message.chat.id, draft_id, "Still working...")
18+
time.sleep(1)
19+
bot.send_message(message.chat.id, "Done.")
20+
21+
22+
bot.infinity_polling()

0 commit comments

Comments
 (0)