• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Граббер привнотов с чатов и каналов телеграм на Python

DuckVision

(L3) cache
Пользователь
Регистрация
29.06.2019
Сообщения
165
Реакции
214
Сегодня мы будем писать граббер привнотов с разных чатов или каналов в телеграме. Для начала пройдемся по зависимостям.

Python:
pyPrivnote==0.0.1a1
PySocks==1.6.8
requests==2.7.0
Telethon==1.4.1

Это все зависимости которые нам будут нужны, PySocks нужен в том случае, если вы не можете напрямую подключится к телеграм.
Итак, начнём с импортов всего необходимого.

Python:
import re
import socks
import requests
import pyPrivnote as pn
from telethon import TelegramClient, events, sync
from telethon.tl.types import PeerUser, PeerChat, PeerChannel

После того как импортировали всё что нам было нужно можем начинать с создания клиента телеграм.
Переходим на https://my.telegram.org/auth , авторизируемся под тем аккаунтом с которого хотим следить за чатами, далее создаём своё приложение, думаю для вас это будет несложно сделать.

ef947c70-07fc-43ec-a239-b92a6ffbd92e.png


Отсюда нам нужны api_id и app api_hash. Никому их не сообщайте.
Далее по документации Telethon нам надо создать свой клиент.

Python:
api_id = 11111111111
api_hash = 'xxxxxxxxx:xxxxxxxx'
phone = "+88005553535"
chat = "DUROV"
proxy_ip = "192.168.15.1"
port = 9999


client = TelegramClient('coma', api_id, api_hash, proxy=(socks.SOCKS5, str(proxy_ip), port))
client.start()
client.sign_in(phone)

Давайте разберемся что да как. С полями Api_id и Api_hash я думаю вы уже разобрались, туда надо вставить свои данные которые вы получили при регистрации приложения. В Phone мы вставляем номер аккаунта через который будем слушать чаты. В поле Chat нам необходимо указать куда будет отправляться текст с Привнота. Можно вставлять юзернейм без @ и ссылку на какой либо чат такого типа:

Python:
chat = "https://t.me/joinchat/xxxxxxxxxxxxxxxxxx"
chat = "DUROV"

Далее, если у вас нет коннекта к телеграму без прокси то вписываем прокси айпи и порт.
Затем создаём клиент:

Python:
client = TelegramClient('coma', api_id, api_hash, proxy=(socks.SOCKS5, str(proxy_ip), port))
client.start()
client.sign_in(phone)

Где надпись 'coma' вы можете вставлять любое имя, это будет названием файла сессии. Далее у нас идёт подключение по socks5 proxy.
Как должен выглядеть код без прокси:

Python:
api_id = 11111111111
api_hash = 'xxxxxxxxx:xxxxxxxx'
phone = "+88005553535"
chat = "DUROV"


client = TelegramClient('coma', api_id, api_hash)
client.start()
client.sign_in(phone)

Далее мы создаём ивент для того что-бы слушать все чаты в телеграме.

Python:
@client.on(events.NewMessage)
async def my_event_handler(event):

Затем нам надо сделать условие поиска ссылки привнота.

Python:
if re.findall(r'(https://privnote.com/)', event.raw_text, re.I):

То есть, если в event.raw_text будет ссылка вида https://privnote.com/
event это событие. Raw_text это текст сообщения в этом событии. И, если он найдет ссылку в сообщение то передаст дело дальше. А дальше у нас будет регулярка для того что-бы вытащить саму ссыль на привнот:

Python:
awesome_re = re.search("(?P<url>https?://[^\s]+)", event.raw_text).group("url")

То есть он будет искать ссылку в сообщение где было https://privnote.com/
Затем нам надо прочесть сам привнот.

Python:
note_text = pn.read_note(str(awesome_re))

Ну и почти последнее, нам надо отправить текст сообщения из привнота в чат или человеку.

Python:
await client.send_message(chat, str(note_text))

Ну и завершаем мы это всё:

Python:
client.run_until_disconnected()

Далее будет полный листинг программы.
Код:
import re
import socks
import requests
import pyPrivnote as pn
from telethon import TelegramClient, events, sync
from telethon.tl.types import PeerUser, PeerChat, PeerChannel


api_id = 11111111111
api_hash = 'xxxxxxxxx:xxxxxxxx'
phone = "+88005553535"
chat = "DUROV"
proxy_ip = "192.168.15.1"
port = 9999


client = TelegramClient('coma', api_id, api_hash, proxy=(socks.SOCKS5, str(proxy_ip), port))
client.start()
client.sign_in(phone)


@client.on(events.NewMessage)
async def my_event_handler(event):
    if re.findall(r'(https://privnote.com/)', event.raw_text, re.I):
        awesome_re = re.search("(?P<url>https?://[^\s]+)", event.raw_text).group("url")
        note_text = pn.read_note(str(awesome_re))
        await client.send_message(chat, str(note_text))


client.run_until_disconnected()

После запуска нас попросит пройти авторизацию, вписываем свой номер через плюс, затем код который пришел в телеграм. Вот и всё, скрипт работает, можем тестировать.

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

Python:
pyPrivnote==0.0.1a1
PySocks==1.6.8
requests==2.7.0
Telethon==1.4.1

Это все зависимости которые нам будут нужны, PySocks нужен в том случае, если вы не можете напрямую подключится к телеграм.
Итак, начнём с импортов всего необходимого.

Python:
import re
import socks
import requests
import pyPrivnote as pn
from telethon import TelegramClient, events, sync
from telethon.tl.types import PeerUser, PeerChat, PeerChannel

После того как импортировали всё что нам было нужно можем начинать с создания клиента телеграм.
Переходим на https://my.telegram.org/auth , авторизируемся под тем аккаунтом с которого хотим следить за чатами, далее создаём своё приложение, думаю для вас это будет несложно сделать.

Посмотреть вложение 4970

Отсюда нам нужны api_id и app api_hash. Никому их не сообщайте.
Далее по документации Telethon нам надо создать свой клиент.

Python:
api_id = 11111111111
api_hash = 'xxxxxxxxx:xxxxxxxx'
phone = "+88005553535"
chat = "DUROV"
proxy_ip = "192.168.15.1"
port = 9999


client = TelegramClient('coma', api_id, api_hash, proxy=(socks.SOCKS5, str(proxy_ip), port))
client.start()
client.sign_in(phone)

Давайте разберемся что да как. С полями Api_id и Api_hash я думаю вы уже разобрались, туда надо вставить свои данные которые вы получили при регистрации приложения. В Phone мы вставляем номер аккаунта через который будем слушать чаты. В поле Chat нам необходимо указать куда будет отправляться текст с Привнота. Можно вставлять юзернейм без @ и ссылку на какой либо чат такого типа:

Python:
chat = "https://t.me/joinchat/xxxxxxxxxxxxxxxxxx"
chat = "DUROV"

Далее, если у вас нет коннекта к телеграму без прокси то вписываем прокси айпи и порт.
Затем создаём клиент:

Python:
client = TelegramClient('coma', api_id, api_hash, proxy=(socks.SOCKS5, str(proxy_ip), port))
client.start()
client.sign_in(phone)

Где надпись 'coma' вы можете вставлять любое имя, это будет названием файла сессии. Далее у нас идёт подключение по socks5 proxy.
Как должен выглядеть код без прокси:

Python:
api_id = 11111111111
api_hash = 'xxxxxxxxx:xxxxxxxx'
phone = "+88005553535"
chat = "DUROV"


client = TelegramClient('coma', api_id, api_hash)
client.start()
client.sign_in(phone)

Далее мы создаём ивент для того что-бы слушать все чаты в телеграме.

Python:
@client.on(events.NewMessage)
async def my_event_handler(event):

Затем нам надо сделать условие поиска ссылки привнота.

Python:
if re.findall(r'(https://privnote.com/)', event.raw_text, re.I):

То есть, если в event.raw_text будет ссылка вида https://privnote.com/
event это событие. Raw_text это текст сообщения в этом событии. И, если он найдет ссылку в сообщение то передаст дело дальше. А дальше у нас будет регулярка для того что-бы вытащить саму ссыль на привнот:

Python:
awesome_re = re.search("(?P<url>https?://[^\s]+)", event.raw_text).group("url")

То есть он будет искать ссылку в сообщение где было https://privnote.com/
Затем нам надо прочесть сам привнот.

Python:
note_text = pn.read_note(str(awesome_re))

Ну и почти последнее, нам надо отправить текст сообщения из привнота в чат или человеку.

Python:
await client.send_message(chat, str(note_text))

Ну и завершаем мы это всё:

Python:
client.run_until_disconnected()

Далее будет полный листинг программы.
Код:
import re
import socks
import requests
import pyPrivnote as pn
from telethon import TelegramClient, events, sync
from telethon.tl.types import PeerUser, PeerChat, PeerChannel


api_id = 11111111111
api_hash = 'xxxxxxxxx:xxxxxxxx'
phone = "+88005553535"
chat = "DUROV"
proxy_ip = "192.168.15.1"
port = 9999


client = TelegramClient('coma', api_id, api_hash, proxy=(socks.SOCKS5, str(proxy_ip), port))
client.start()
client.sign_in(phone)


@client.on(events.NewMessage)
async def my_event_handler(event):
    if re.findall(r'(https://privnote.com/)', event.raw_text, re.I):
        awesome_re = re.search("(?P<url>https?://[^\s]+)", event.raw_text).group("url")
        note_text = pn.read_note(str(awesome_re))
        await client.send_message(chat, str(note_text))


client.run_until_disconnected()

После запуска нас попросит пройти авторизацию, вписываем свой номер через плюс, затем код который пришел в телеграм. Вот и всё, скрипт работает, можем тестировать.
Спасибо за годную пищу для мозга)
 
Чел, ты занимаешься копипастой. Может я опять чего то не понимаю, но нужно ссылку на автора оставлять.
поскольку кто либо захочет с ним связаться и будет думать что это написано тобой(
Скрытый контент для зарегистрированных пользователей.
 
Чел, ты занимаешься копипастой. Может я опять чего то не понимаю, но нужно ссылку на автора оставлять.
поскольку кто либо захочет с ним связаться и будет думать что это написано тобой(
Скрытое содержимое
Еще можно мамке написать, так как порядка 90% контента на xss - это копипаст.

Но если твоей психики наносит вред копипаст, то лично для тебя я оставлю ссылку на автора https://teletype.in/@codingcommunity
Там ты сможешь найти куда больше копипаста относительно данного форума.

Успехов братан :)

И не надо меня стебать на счет кода, я достаточно стар для этого всего, и сам узучаю код и пишу сейчас, тут я ничего своего не буду выкладывать или продавать, тут я буду выкладывать копипаст. Я про это давно писал и от этого не скрываюсь.
 
Последнее редактирование:


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх