Скрипт от моего имени пересылает в мою же группу посты. Необходимо сделать так, чтобы при пересылке сообщения в мою группу добавлялась кнопка, которая выполняла команды. Такой код не работает, причину выяснить не удалось
from telethon import TelegramClient, events, Button
import re
# Создаем клиент
client = TelegramClient('TestRSL', api_id, api_hash)
# Обработчик новых сообщений
@client.on(events.NewMessage(chats=('t.me/hinyatest3',...)))
async def handler(event):
if event.message.message is not None:
if '100%' in event.message.message or re.search(r'(^|[^0-9])\s*?(%)', event.message.message) \
or re.search('бесплатно', event.message.message, re.IGNORECASE) \
or re.search(r'(^|[^0-9])0\s*?(руб|р|₽|рублей)', event.message.message, re.IGNORECASE):
# Извлечение ника продавца
seller_nick = re.search(r'@\w+', event.message.message)
if seller_nick:
seller_nick = seller_nick.group(0) # Получаем ник в формате @username
# Создаем кнопку для проверки продавца
button = Button.inline('Проверить продавца')
# Пересылаем сообщение с кнопкой
await client.send_message('t.me...',
event.message,
buttons=[[button]])
await client.send_message("Нажмите на кнопку 'Проверить продавца'",
buttons=[[button]])
@client.on(events.CallbackQuery)
async def callback_handler(event):
seller_nick = event.data.decode('utf-8') # Декодируем данные кнопки
# Здесь выполняется поиск в других группах
# Например, отправляем сообщения в заданные группы для проверки наличия информации о продавце
search_results = []
# Добавьте вашу логику поиска здесь...
groups_to_check = [-1002149947645, -1001256835241] # Определите группы для поиска
for group in groups_to_check:
async for message in client.iter_messages(group, limit=50):
if seller_nick in message.message:
search_results.append(f"Найден в {group}: {message.message}")
# Отправка результатов пользователю
if search_results:
await event.respond('\n'.join(search_results))
else:
await event.respond("Информация о продавце не найдена.")
# Удалить сообщение через X времени
await event.delete(10)
# Запуск клиента
with client:
client.run_until_disconnected()