Хочу сделать телеграм бота, который из одного моего канала пересылает посты в другой, как реализовать?
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 шт):
Автор решения: Mr.failman
→ Ссылка
Реализация на 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()