@TheNeon

Как исправить пересылку сообщений без имени в тг бот?

Сообщения пересылаются без имени отправителя. Либо None, либо нет имени пользователя. Хотелось бы чтобы бы ссылка ника была кликабельна.Как исправить?

from telethon import TelegramClient, events
from telegram import Bot

api_id = 00000000
api_hash = "000000000000000000000..."
phone = "+70000000000"
bot_token = "00000000000000000..."  # Вставьте сюда токен вашего бота

# Создаем клиент Telegram
client = TelegramClient('session_name', api_id, api_hash)
bot = Bot(token=bot_token)

async def monitor_messages():
    # Определяем ключевые слова, по которым будем фильтровать сообщения
    ключевые_слова = ['авито']

    # Задаем список названий каналов для мониторинга
    целевые_каналы = ['КЛИЕНТЫ || РАБОТА ОНЛАЙН']

    @client.on(events.NewMessage)
    async def handler(event):
        try:
            if event.is_channel and event.chat:
                if event.chat.title in целевые_каналы:
                    for ключ in ключевые_слова:
                        if ключ.lower() in event.raw_text.lower():
                            имя_отправителя = event.sender.username if event.sender else "Нет имени пользователя"
                            сообщение = f'Новое сообщение в канале {event.chat.title}:\n'
                            сообщение += f'{имя_отправителя} написал(а): {event.raw_text}'
                            # Отправляем сообщение в чат-бот
                            await bot.send_message(chat_id=2072351966, text=сообщение)  # Замените YOUR_CHAT_ID на ID вашего чата
        except Exception as e:
            if "AuthKeyUnregisteredError" not in str(e):
                print(e)

    print("Старт мониторинга сообщений...")
    await client.run_until_disconnected()

async def main():
    # Запускаем мониторинг сообщений в фоновом режиме
    await monitor_messages()

# Запускаем клиент Telegram и основную программу
with client:
    client.loop.run_until_complete(main())
  • Вопрос задан
  • 62 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы