Форум сайта python.su
Проблема заключается в том что программа втыкается на месте подключения к Discord боту. При этом ошибок никаких не выдаёт. На всякий скажу что похожий код используя те же библиотеки работает.
import asyncio from telethon import TelegramClient, events, errors as telethon_errors import discord from discord import Intents import traceback # Замените на ваши данные TELEGRAM_API_ID = TELEGRAM_API_ID TELEGRAM_API_HASH = "TELEGRAM_API_HASH" DISCORD_TOKEN = "DISCORD_TOKEN_BOT" # ID каналов Discord DISCORD_CHANNEL_ALFA_ID = CHANNEL_ALFA DISCORD_CHANNEL_BETA_ID = CHANNEL_BETA async def main(): try: async with TelegramClient('my_telegram_session', TELEGRAM_API_ID, TELEGRAM_API_HASH) as telegram_client: intents = Intents.default() intents.message_content = True # Важно! Разрешает чтение содержимого сообщений async with discord.Client(intents=intents) as discord_client: try: await discord_client.wait_until_ready() print(f'Logged in as {discord_client.user}') except asyncio.CancelledError: print("Discord connection cancelled.") return @telegram_client.on(events.NewMessage(pattern=r'#alfa\s+.*')) async def handler_alfa(event): try: message = event.raw_text[5:] alfa_channel = discord_client.get_channel(DISCORD_CHANNEL_ALFA_ID) if alfa_channel: await alfa_channel.send(message) except Exception as e: print(f"Ошибка при отправке сообщения в Alfa канал: {e}") traceback.print_exc() @telegram_client.on(events.NewMessage(pattern=r'#beta\s+.*')) async def handler_beta(event): try: message = event.raw_text[5:] beta_channel = discord_client.get_channel(DISCORD_CHANNEL_BETA_ID) if beta_channel: await beta_channel.send(message) except Exception as e: print(f"Ошибка при отправке сообщения в Beta канал: {e}") traceback.print_exc() print("Telegram bot started. Waiting for messages...") await telegram_client.run_until_disconnected() except telethon_errors.SessionPasswordNeededError: print("Two-factor authentication required. Enter the code from Telegram.") except telethon_errors.rpcerrorlist.RpcError as e: print(f"Telegram API error: {e}") traceback.print_exc() except discord.errors.LoginFailure as e: print(f"Discord login failed: {e}") traceback.print_exc() except discord.errors.HTTPException as e: print(f"Discord HTTP error: {e}") traceback.print_exc() except Exception as e: print(f"An unexpected error occurred: {e}") traceback.print_exc() if __name__ == "__main__": asyncio.run(main())
Офлайн
Сделай отдельный скрипт. В нём напиши подключение к Discord'у. Убедись, что подключение происходит и ответ из Discord'а приходит.
Если не получается асинхронный скрипт написать, который бы работал, то напиши синхронный скрипт.
Dober_ShowКонкретизируй, какой код работает.
На всякий скажу что похожий код используя те же библиотеки работает.
Офлайн
py.user.nextЯ написал код взяв в пример код с GitHub. И хотел написать похожий с возможностью отправлять сообщения из Telegram по “#”. Например “#alfa Привет” должно отправиться в чат с id привязанным к этому #.
Сделай отдельный скрипт. В нём напиши подключение к Discord. Убедись, что подключение происходит и ответ от Discord приходит. Если не получается написать асинхронный скрипт, который бы работал, то напиши синхронный скрипт.
Офлайн
То есть ты его не запускал. Так что сделай скрипт подключения к Discord-боту и отправки в него сообщения. Если у тебя простейший скрипт не подключится к Discord'у, то более сложный тем более не подключится.
Офлайн
Специально для тех кто не смотрит телевизор
https://www.rbc.ru/technology_and_media/08/10/2024/67054cbf9a79474670135b84
Офлайн
RodegastСкажу тебе так, Discord далеко не у всех заблокирован) И у меня в том числе)
Специально для тех кто не смотрит телевизор https://www.rbc.ru/technology_and_media/08/10/2024/67054cbf9a79474670135b84
Офлайн
py.user.nextЯ как раз запускал его, а вот отдельно лично мой скрипт у меня не получается. Возможно я чего то не указал в коде. Чужие скрипты работают.
То есть ты его не запускал. Так что сделай скрипт подключения к Discord-боту и отправки в него сообщения. Если у тебя простейший скрипт не подключится к Discord'у, то более сложный тем более не подключится.
Офлайн
Dober_ShowДобавь вывод сообщений в консоль на каждом шаге.
Возможно я чего то не указал в коде.
Офлайн
py.user.nextПочитайте код, там все возможные ошибки прописаны.
Добавь вывод сообщений в консоль на каждом шаге.
Офлайн
Dober_ShowНу да, именно это ты бы и обнаружил, если бы сделал вот это.
В логике подключения к Дискорд боту тупо отсутствует токен для подключения
Dober_ShowЯ говорю про пустой экран, который ты наблюдаешь, хоть все ошибки и прописаны. Нужно, чтобы там был не пустой экран, а отладочные информативные сообщения.
Почитайте код, там все возможные ошибки прописаны
Dober_ShowНу если ты отлаживать код не умеешь, то, конечно, это видно. Почему я и взялся отлаживать твой код вместо тебя, сам ведь ты бы не догадался.
как полагаю у вас опыта в программировании гораздо больше чем у меня
Офлайн