Загрузка...

Passing posts from one channel to another Pyrogram

Thread in Python created by tvoiLil Mar 9, 2025. 166 views

  1. tvoiLil
    tvoiLil Topic starter Mar 9, 2025 539 Dec 14, 2019
    Как мониторить на новые посты один канал, где у меня нет админки и статус стоит MEMBER, в другой канал, где у меня есть админка. Второй день бьюсь ничего не получается, просто код не видит новые посты. Помогите пожалуйста
     
  2. Kail_J
    Kail_J Mar 13, 2025 1 Jan 1, 2019
    Это можно сделать через телетон сессию.

    Python
    from telethon import TelegramClient, events
    import asyncio

    # Используй свои API-ключи (получить можно на https://my.telegram.org/apps)
    API_ID = 123456 # Замени на свой API_ID
    API_HASH = "your_api_hash" # Замени на свой API_HASH
    SESSION_NAME = "my_session" # Название файла сессии

    # Группы
    SOURCE_CHAT_ID = 1234567890123 # Id группы-источника
    DEST_CHAT_ID = 1234567890123 # Id группы куда будут перекидываться посты

    # Создаем клиент
    client = TelegramClient(SESSION_NAME, API_ID, API_HASH)

    @client.on(events.NewMessage(chats=SOURCE_CHAT_ID))
    async def forward_post(event):
    if event.photo:
    await client.send_file(DEST_CHAT_ID, event.photo, caption=event.text)
    elif event.video:
    await client.send_file(DEST_CHAT_ID, event.video, caption=event.text)
    elif event.document:
    await client.send_file(DEST_CHAT_ID, event.document, caption=event.text)
    else:
    await client.send_message(DEST_CHAT_ID, event.text)

    print("Сообщение переслано!")

    # Запуск бота
    async def main():
    print("Бот запущен...")
    await client.start()
    await client.run_until_disconnected()

    if __name__ == "__main__":
    asyncio.run(main())
     
Top
Loading...