Как заменить часть сообщения в боте, написанном на Telethon
Есть бот ретраслятор — он переотправляет сообщения целиком из одного канала в другой. Нужно сделать так, либо чтобы сообщение отправлялось без последней строчки, либо чтобы можно было заменить последнюю строчку.
from telethon import TelegramClient, events
api_id = '-------'
api_hash = '-------'
client = TelegramClient('--', api_id, api_hash)
client.start()
@client.on(events.NewMessage(id канала 1))#ТЕСТ 1
async def main(event):
await client.send_message(id канала 2, event.message)
client.run_until_disconnected()
Ответы (1 шт):
Автор решения: PaveTranquil
→ Ссылка
Для этого вам нужно разделить event.message на строки, а затем удалить последнюю строку или заменить её, в зависимости от того, что вам нужно.
from telethon import TelegramClient, events
api_id = '-------'
api_hash = '-------'
client = TelegramClient('--', api_id, api_hash)
client.start()
@client.on(events.NewMessage(id канала 1))#ТЕСТ 1
async def main(event):
text = event.message.message.split('\n') # разделяет сообщение на строки
text = text[:-1] # удаляет последнюю строку
text[-1] = 'что-то другое' # заменяет текст последней строки на что-то другое
text = '\n'.join(text)
await client.send_message(id канала 2, text)
client.run_until_disconnected()
Похоже, есть пробелы в понимании, как работают строки. Думаю, вам стоит поискать и почитать гайды по ним. Например, вот этот.