Загрузка...

Создаем свой юзербот-спамер за 15 минут telethon - 1 часть. Для новичков

Тема в разделе Python создана пользователем dolezha 25 июл 2023. (поднята 4 июн 2025 в 19:27) 2966 просмотров

Загрузка...
  1. dolezha
    dolezha Автор темы 25 июл 2023 Python-разработчик: lolz.live/threads/7201971 49 17 ноя 2021
    Всех приветствую!
    В данной статье хочу показать процесс создания максимально простого юзербота с помощью telethon. Знания python не обязательны! (но желательно знать самые основы, по типу: переменные, списки и пр). Мы будем использовать библиотеку telethon. Буду комментировать каждую строчку. Планирую сделать 3-5 частей, в процессе которых, мы создадим несколько маленьких/один большой проект(ов). Об этом напишите в комментариях (я бы предпочел сделать что-то одно большое). Меньше слов - больше дела:

    1. УСТАНОВКА И НАСТРОЙКА
    1. Установить библиотеку telethon: pip install telethon==1.29.0. Установите мою версию библиотеки (на 25.07.23 - самую новую) данной командой, чтобы все процессы создания юзербота у нас совпадали
    2. Создайте файлы: config.json и main.py. В json файле мы будем хранить все настройки, а в .py - писать код.
    3. Вам рекомендую сделать json таким же, как и у меня, чтобы не менять работу с json. Откройте json файл и запишите:
    Код
    {
    "account" : {
    "api_id" : "xxxxxx",
    "api_hash": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "phone": "+xxxxxxxxxxx"
    }
    }
    4. Посетите my.telegram.org >> войдите >> создайте приложение и заполните json вашими данными
    Отлично - настройка окончена. Можем начинать писать код!

    2. НАЧАЛО
    В python файле импортируем библиотеку, а также возьмем данные из json файла (для удобной работы с ним - будем также использовать библиотеку):
    Python

    from telethon.sync import TelegramClient
    from telethon.tl.functions.messages import SendReactionRequest
    from telethon import types
    from telethon import events
    import asyncio, json


    # Достаем все параметры из json
    with open("config.json", "r") as file:
    config = json.load(file)

    api_id = config["account"]["api_id"]
    api_hash = config["account"]["api_hash"]
    phone = config["account"]["phone"]
    1 способ) сделать как у меня
    2 способ) по аналогии изменить названия

    Отлично. Создаем клиент (простым языком сессию, с помощью которой, мы будем управлять аккаунтом):
    Python
    client = TelegramClient('telethon_session', api_id, api_hash, system_version="4.16.30-vxCUSTOM")
    client.start()
    client.run_until_disconnected()
    Используя юзерботы, есть шанс того, что вы потеряете все сессии, но есть правила предосторожности, которые помогут избежать этого в 90% случаев:
    1) Используйте аккаунт, к которому сможете запросить смс в случае вылета сессии
    2) Мы указали параметр system_version, создающий кастомный клиент
    3) На устройстве, на котором вы запустите программу, не должно быть других сессий этого аккаунта
    Запускаем программу >> вводим номер телефона >> вводим код подтверждения >> вводим пароль 2-фа, если он есть :face_smile:
    В папке, в которой у вас лежит исполняемый файл появился новый файл telethon_session.session. Не удаляйте его, чтобы в дальнейшем не проходить авторизацию заново.

    3. СПАМЕР РЕАКЦИЯМИ
    Начнем создание спамера реакциями. Для начала найдите чаты (открытые и закрытые), в которых будете спамить реакциями. Далее, запишите их id/username в список. Например, вот так:
    Python
    chats = [-1001980573325, "@bebra"]
    Далее создаем функцию - обработчик сообщений, написанных в чате.
    Python
    @client.on(events.NewMessage(chats=(chats)))
    async def reaction_handl(event):
    Для того, чтобы поставить реакцию - нам надо узнать id сообщения и peer_id. Узнаем в функции:
    Python
        peer_id = event.message.peer_id
    msg_id = event.message.id
    И ставим реакцию:
    Python
    asyncio.sleep(10)
    await client(SendReactionRequest(
    peer=peer_id,
    msg_id=msg_id,
    reaction=[types.ReactionEmoji(emoticon="❤")]
    ))
    Вместо сердца подставьте любую реакцию, доступную в телеграм. Здесь я также поставил таймер на поспать, чтобы не словить ограничения (советую оставить такое же значение)

    Весь код сейчас:
    Python
    from telethon.sync import TelegramClient
    from telethon.tl.functions.messages import SendReactionRequest
    from telethon import types
    from telethon import events
    import time, json


    # Достаем все параметры из json
    with open("config.json", "r") as file:
    config = json.load(file)

    api_id = config["account"]["api_id"]
    api_hash = config["account"]["api_hash"]
    phone = config["account"]["phone"]


    client = TelegramClient('reactions_session2', api_id, api_hash, system_version="4.16.30-vxCUSTOM")
    client.start()

    chats = ["@brbrd"]


    # Обработчик всех поступающих сообщений
    @client.on(events.NewMessage(chats=(chats)))
    async def reaction_handl(event):
    peer_id = event.message.peer_id
    msg_id = event.message.id

    asyncio.sleep(10)
    await client(SendReactionRequest(
    peer=peer_id,
    msg_id=msg_id,
    reaction=[types.ReactionEmoji(emoticon="❤")]
    ))

    client.run_until_disconnected()
    4. СПАМЕР ПО ЧАТАМ

    Добавим спамер по чатам из списка chats:
    Python
    chats = ["@brbrd"]

    async def spammer():

    while True:

    for chat in chats:

    client.send_message(chat, 'Ваше сообщение')

    asyncio.sleep(10)

    asyncio.create_task(spammer())
    Спасибо за прочтение! Надеюсь новичкам понравилось - в следующей статье сделаю что-то поглобальнее. Свои мнения в комменты :)
     
  2. Superillegal
    Superillegal 25 июл 2023 medium demon 1358 18 дек 2020
    Для новичков гайд хороший, правда уже много таких скриптов было
     
    1. dolezha Автор темы
      Superillegal, честно, лучше не придумал. просто не было много времени, чтобы написать что-то большое. но это не последняя статья на телетон - там постараюсь сделать что-то уникальное
  3. hate_light
    hate_light 28 июл 2023 1 30 ноя 2022
    Не хватает кода скрипта целиком. И на гитхаб бы залить...
     
    1. dolezha Автор темы
  4. Delete_L
    Delete_L 28 июл 2023 226 13 дек 2020
    Ну если спамить по чатам то нужно ещё обработчик ошибок сувать
    Для новичков гайд хороший
     
  5. детектив
    детектив 28 июл 2023 elvis has left the building 260 19 ноя 2019
    поддерживает много чатов сразу?
     
    28 июл 2023 Изменено
    1. Delete_L
    2. dolezha Автор темы
      детектив, и спам реакциями, и спам по чатам поддерживают
  6. dolezha
    dolezha Автор темы 2 июн 2024 Python-разработчик: lolz.live/threads/7201971 49 17 ноя 2021
    Спустя год собираюсь писать вторую и далее части. Что по вашему мнению стоит привести в пример (как со спамером реакций)? Поднято кнопкой
     
    2 июн 2024 Изменено
Top