Send long message in telegram bot python
I have a telegram bot and I want to send a message
in which the error message will be returned to me
my code is :
path = 'C:\\Bot\\Log\\aaa\\*.log'
files = glob.glob(path)
nlines= 0
data = "Servers : \n"
for name in files:
with open(name) as f:
for line in f :
nlines += 1
if (line.find("Total") >= 0):
data += line
for i in range(5):
data += next(f)
data += f'\n{emoji.emojize(":blue_heart:")} ----------------------------------------------------{emoji.emojize(":blue_heart:")}\n'
if (line.find("Source") >= 0):
data += line
query.edit_message_text(
text=f"{data}",
reply_markup=build_keyboard(number_list),
)
my error is :
telegram.error.BadRequest: Message_too_long
According to this code model, how can I send my message to the bot?
its still an open issue, but you can split your request for 4089 chars per send
you have 2 options:
if len(info) > 4096:
for x in range(0, len(info), 4096):
bot.send_message(message.chat.id, info[x:x+4096])
else:
bot.send_message(message.chat.id, info)
or
msgs = [message[i:i + 4096] for i in range(0, len(message), 4096)]
for text in msgs:
update.message.reply_text(text=text)
This code may works :
if len(info) > 4096:
for x in range(0, len(info), 4096):
bot.send_message(message.chat.id, info[x:x+4096])
else:
bot.send_message(message.chat.id, info)