January 22, 2021

[Telegram] Грабер постов из чужих каналов в свой

Приветствую всех! Недавно мне понадобилось наполнить канал контентом, а запариваться над ним не хотелось, тогда и пришла идея написать простенький пост грабер. Решил выложить, мб кому-то понадобится.

Приветствую всех! Недавно мне понадобилось наполнить канал контентом, а запариваться над ним не хотелось, тогда и пришла идея написать простенький пост грабер. Решил выложить, мб кому-то понадобится.

Функционал скрипта: Скрипт будет чекать нужный канал на появление новых постов, появился новый пост - пересылает его в ваш канал.

Используемые библиотеки: Будем юзать только одну библиотеку - Telethon Открываем cmd.exe и устанавливаем ее: pip3 install telethon

Приступаем к говнокоду. (Кому не нужно описание - полный код в конце)

Импортируем нужные библиотеки

from telethon import functions, types

from telethon.sync import TelegramClient
from telethon import TelegramClient, events, sync

Передаем api_id и api_hash:

api_id = 1976464
api_hash = "xxb1346bdbddb43434"

Подключаемся к клиенту:

client = TelegramClient("test", api_id, api_hash) client.start() print("STARTED")

Далее нам необходимо подписаться на каналы с которых будет происходить граббинг постов и указать их. Мы будем получать обновления с каждого канала который запишем:

@client.on(events.NewMessage(chats=["Chanel1", "Chanel2", " Chanel3", "Chanel4", "chanel5"]))

Хэндлер, который реагирует на новые посты:

async def normal_handler(event): if isinstance(event.chat, types.Channel):

Публикация поста

await client.send_message("https://t.me/joinchat/AAAAAxxxxxxxxx1", rdy)
await client.send_message("https://t.me/joinchat/AAAAAxxxxxxxxx1", event.message)

Диссконект

client.run_until_disconnected()

Весь код:

from telethon import functions, types
from telethon.sync import TelegramClient
from telethon import TelegramClient, sync
from telethon import TelegramClient, events, sync


api_id = 123456 # ваши данные, брать с my.telegram.org
api_hash = "ada12245jsfo5o2525o6o36" # ваши данные, брать с my.telegram.org

client = TelegramClient("Test", api_id, api_hash) # логинимся
client.start() # старт клиента
@client.on(events.NewMessage(chats=["test1", 'test2'])) # список каналов, откуда будем брать посты
async def normal_handler(event):
if isinstance(event.chat, types.Channel):
username = event.chat.username
rdy = "@" + str(username) # получаем юзернейм канала, откуда забрали пост
await client.send_message("https://t.me/joinchat/AAAAAE1t242", rdy) # будет отправлять инфу, о том, с какого канала спизжен пост
await client.send_message("https://t.me/joinchat/AAAAAE1t242", event.message) # отправка поста в канал
client.run_until_disconnected()

api id & api hash брать тут Спасибо за внимание Оригинал статьи тут: https://teletype.in/@slivmens/paJYDLi8z

Новая тема: https://teletype.in/@charleswebster/kEKWoVrJa