Хочу сделать телеграм бота, который из одного моего канала пересылает посты в другой, как реализовать?

Рейтинг: 0Ответов: 1Опубликовано: 09.04.2023
from telethon.sync import TelegramClient, events
import telethon
api_id = 
api_hash = ''


bot_token = ''


channel_ids = [-1001925849552]


client = TelegramClient('my_session_alsoban122', api_id, api_hash)


@client.on(events.NewMessage(chats=channel_ids))
async def handle_new_message(event):

    message_text = event.message.message
    media_links = []

 
    if event.message.entities is not None:
        for entity in event.message.entities:
            if entity.url:
                media_links.append(entity.url)

   
    bot = TelegramClient('bot', api_id, api_hash).start(bot_token=bot_token)
    for link in media_links:
        await bot.send_message(chat_id=-1001675787017, message=link)
    await bot.send_message(chat_id=-1001675787017, message=message_text)

client.start()
client.run_until_disconnected()

Вот такой код я написал, и не могу его доработать, так как после пары перезапусков аккаунт в телеге отлетает и его удаляют, можно ли этого как-то избежать и как доработать код?

Ответы

▲ 1

Реализация на telethon

import asyncio
from telethon import TelegramClient, events

# Создаем клиента Telegram
api_id = 12345 # Замените на свой API ID
api_hash = '0123456789abcdef0123456789abcdef' # Замените на свой API Hash
client = TelegramClient('my_session', api_id, api_hash)

# Устанавливаем параметры каналов
source_channel = 'source_channel_username' # Замените на имя источника
target_channel = 'target_channel_username' # Замените на имя целевого канала

# Обработчик события нового сообщения в источнике
@client.on(events.NewMessage(chats=source_channel))
async def handler(event):
    # Пересылаем сообщение в целевой канал
    await client.send_message(target_channel, event.message)
    # Ждем 5 секунд перед следующей пересылкой
    await asyncio.sleep(5)

# Запускаем клиента и ожидаем событий
with client:
    client.run_until_disconnected()