Как пересылать сообщения, отправленные пользователем боту и содержащие определенные символы, другому пользователю
Вопрос в следующем: есть бот, человек в него пишет номер заявки в тех поддержку, указывая номер заявки и краткое название ГИС, например, "ЭБ, 1654356" или "КИ, 44566".
Как сделать, чтобы бот пересылал сообщения по одному условию ("ЭБ, 1654356") одному выбранному пользователю, а по другому условию ("КИ, 44566") другому выбранному пользователю?
Я нашел такие варианты на telebot и telethon, но что-то не работает ((
from telebot import TeleBot
bot = TeleBot('[token]') # Не забудьте подставить свой токен!
TO_CHAT_ID = ... # Не забудьте подставить нужный id!
@bot.message_handler(content_types=['text'])
def all_messages(message):
bot.forward_message(TO_CHAT_ID, message.chat.id, message.message_id)
if __name__ == '__main__':
bot.polling(none_stop=True)
И вот такой еще вариант для удаления сообщений, содержащих условие, но не для пересылки
@client.on(events.NewMessage(pattern=r'(?i).*heck'))
async def handler(event):
await event.delete()
Ответы (1 шт):
Автор решения: Yuriy Makarov
→ Ссылка
Используй bot.forward_message()
Пример:
import psycopg2
bot = telebot.TeleBot(token=TOKEN, parse_mode="MARKDOWN")
@bot.message_handler(content_types=['text'])
def message(msg):
if msg.text == "ЭБ, 1654356": # Условые пересылки сообщения
bot.forward_message(
chat_id=1093110311, # chat_id чата в которое необходимо переслать сообщение
from_chat_id=msg.chat.id, # chat_id из которого необходимо переслать сообщение
message_id=msg.message_id # message_id которое необходимо переслать
)
elif msg.text == "КИ, 44566": #Пересылка при другом условии.
bot.forward_message(
chat_id=1093110311, # chat_id чата в которое необходимо переслать сообщение
from_chat_id=msg.chat.id, # chat_id из которого необходимо переслать сообщение
message_id=msg.message_id # message_id которое необходимо переслать
)
