Простой пост грабер для телеграм [Python] | End Way - форум программирования и сливов различных скриптов
  • Присоединяйтесь к нам в телеграм канал! EndWay канал | EndSoft канал | EWStudio канал
  • Хочешь поставить скрипт, но не умеешь?
    А может ты хочешь свой скрипт на основе слитого?

    Тогда добро пожаловать в нашу студию разработки!

    Телеграм бот: EWStudioBot
    Телеграм канал: EWStudio

Простой пост грабер для телеграм [Python]

CZAR

Нейросеть
Автор темы
26 Авг 2023
96
432
53
Приветствую всех! Недавно мне понадобилось наполнить канал контентом, а запариваться над ним не хотелось, тогда и пришла идея написать простенький пост грабер.

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

Нам понадобится лишь одна библиотека - Telethon.
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()

 
Like
  • 4
Реакции: 3 users

ppppp

Джун
10 Мар 2023
2
0
0
Пару замечаний по коду:
  1. Маленькая нестыковка - вызывается клиент синхронный, а потом используется асинхронный вызов...
  2. from telethon.sync import TelegramClient и from telethon import TelegramClient, sync это одно и то же.
  3. Лишняя проверка на то, является ли чат каналом - события уже настроены на каналы
  4. rdy переменная неопределена
  5. Самое важное - не советую использовать имена каналов. Лучше найти id и access_hash каналов и использовать сущности (entity). Дело в том, что при использовании имен идет обращение к АПИ телеграмма и при частом его вызове можно поймать FloodError
 
Последнее редактирование:
Активность:
Пока что здесь никого нет