Загрузка...
Creating a listening bot in Python
  1. TheBatashev
    TheBatashev Topic starter Apr 7, 2024 Путь к успеху - t.me/future_batashev 267 Mar 23, 2022
    [IMG]

    Ищешь разработчиков для реализации своих идей? Парни из Byte Forge точно это смогут. Ведь мы занимаемся разработкой более года, подробнее жми ниже
    https://zelenka.guru/threads/6746656/







    В этой статье мы создадим телеграм бота-подслушку на языке программирования Python


    1)
    Для начала установим aiogram и создадим бота
    Открываем консоль ( win+r ) и вводим : pip install aiogram


    Далее переходим в BotFather и создаем бота. Переходим в настройки нашего бота и выключаем 'Privacy mode'. Это делается для того, чтобы бот имел возможность читать сообщения в чатах, куда он был добавлен

    2)
    Создаем папку и в ней 3 файла:
    config.py
    main.py
    user_handler.py

    Давайте теперь создадим конфиг для нашего проекта, где будет храниться приватная информация.


    Открываем файл config.py и прописываем в нем следующий код:

    Python
    class Settings(object):

    """
    Класс настроек
    """

    # Все вариации сообщения которые обрабатываются
    all_variants = ['Куплю аккаунт', 'куплю аккаунт', 'куплю акаунт', 'куплю аккаунт', 'купи аккаут', 'Куплю ак',
    'Куплю аккаунт', 'Куплю аккоунт', 'Купить аккаунт', 'Купи аккаунт', 'Купи аккаунт дёшево', 'КУПЛЮ АККАУНТ',
    'куплю акаунт', 'купит аккаут', 'Куплю аккаунт в топе', 'покуплю акаунт', 'аккаунт куплю', 'куплю аккаунт в игре',
    'куплю аккаунт дорого', 'куплю аккаунт ', 'Куплю аккаунт', 'КуПлю акк']

    # Токен бота
    token = ' ТУТ ВПИШИТЕ ТОКЕН БОТА '

    # Чат , куда приходят уведомления
    chat_id = ' ТУТ ПИШЕМ АЙДИ ЧАТА '

    Отлично. Мы создали конфиг нашего будущего бота
    Теперь мы оформим файл запуска. Бот ведь должен как-то запускаться. Открываем файл main.py

    Для начала импортируем все что нам потребуется :
    Python
    import asyncio
    import logging

    from aiogram import Bot, Dispatcher
    from aiogram.fsm.storage.memory import MemoryStorage
    from aiogram.enums.parse_mode import ParseMode

    from user_handler import router

    from config import Settings

    Отлично. Теперь создадим функцию для запуска
    Python
    async def start():

    """
    Функция запуски бота
    """

    bot = Bot(token=Settings.token, parse_mode=ParseMode.HTML) # Создаем экземпляр бота
    dp = Dispatcher(storage=MemoryStorage()) # Создаем диспетчер и указываем хранилище

    dp.include_router(router) # Подключаем роутер , рассмотрим его позже

    me = await bot.get_me()
    print('Started')
    print(me.username)
    logging.basicConfig(level=logging.INFO) # Подключаем логирование

    try:
    await bot.delete_webhook(drop_pending_updates=True) # Удаляем вебхуки
    await dp.start_polling(bot) # Бот работает в режиме Long Polling

    except Exception as e:
    print(e)

    Давайте теперь пропишем код для запуска нашей функции
    Python
    # запускаем бота
    if __name__ == "__main__":
    try:
    asyncio.run(start())
    except (KeyboardInterrupt, SystemExit):
    print('Bot stopped')
    Мы добрались до финальной части разработки

    Открываем файл user_handler.py и импортируем все что потребуется
    Python
    from aiogram import Router, Bot
    from aiogram.filters import BaseFilter
    from aiogram import types
    from config import Settings
    Создаем фильтр, чтобы отлавливать сообщения только из чатов
    Python
    class IsGroup(BaseFilter):
    async def __call__(self, message: types.Message) -> bool:
    return message.chat.type == 'group'
    Создаем роутер, именно он позволяет нам удобно разделять код хэндлеров в различных файлов и соединять в основном
    Python
    router = Router()
    Теперь напишем сам обработчик на сообщения
    Python
    @router.message(IsGroup())
    async def get_messages(message: types.Message, bot : Bot):

    """
    filter: Проверка на группу
    :params Messsage, Bot:

    Если сообщение содержит в себе нужный текст, отправляем увед. в наш чат
    """

    if message.text in Settings.all_variants:
    await bot.send_message(chat_id=Settings.chat_id, text=
    f'<b> Человек хочет купить аккаунт</b>\n'
    f'<b>Юзернейм:</b> @{message.from_user.username}\n'
    f'<b>Айди:</b> {message.from_user.id}\n'
    f'<b>Полное имя:</b> {message.from_user.full_name}')
    Вот мы и закончили разработку! Осталось запустить и потестить

    Вводим в консоли : python main.py
    Таким образом мы запустили нашего бота, не забудьте заполнить конфиг своими данными


    Создаем чат и добавляем туда бота:
    [IMG]


    Вводим сообщение в чате :

    [IMG]


    Бот присылает уведомление в наш чат:

    [IMG]

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

    Всем спасибо.



    Ну а если вы не хотите тратить время на разработку, конечно же можете обратиться ко мне.




     
    This article was useful for you?
    You can thank the author of the topic by transferring funds to your balance
    Thank the author
    1. fedyaxnx
      и зач он нужен?

Comments

    1. arimans
      arimans Apr 7, 2024 228 19,745 May 5, 2019
      Боюсь, если добавляю его в школьную беседу, то мои одноклассники его выгонят.
      Поэтому со стороны это будет очень странно выглядеть.
       
      1. View previous comments (1)
      2. maza_tt
        TheBatashev, можно просто юзербота использовать
      3. GREQUE
        TheBatashev, раньше можно вообще мультипуллинг делать
      4. yrteynes
        arimans, можно сделать такого же, но юзербота, через telethon/pyrogram
    2. O_Flow_O
      O_Flow_O Apr 7, 2024 717 Sep 22, 2021
      Круто все это, добавлю в закладки но забуду потому что больше 1 движения нужно сделать, а так норм тема :amogus:
       
    3. Kalipso
      Kalipso Apr 7, 2024 530 Apr 12, 2022
      блять, такой бот нахуй никому не нужен, его никто не куда не добавит
       
      1. View previous comments (3)
      2. Kalipso
        God_likeGL, базар закрыт в такое время
      3. Klerian
        Kalipso, вы не правы, очень востребованный бот вышел, всяким админам по перепродажам игр вообще на ура зашел.
    4. TellS
      TellS Apr 7, 2024 ТГ КАНАЛЫ | https://zelenka.guru/threads/6769489/ 38 Apr 14, 2021
      лучше сделать юзербота
       
      1. TheBatashev Topic starter
        TellS, скоро сделаю статью
      2. Кот
        TheBatashev, буду ждать, вот это реально интересно :wotpopcorn:
    5. devneon
      devneon Apr 7, 2024 Разработка >> https://lolz.live/threads/6933293/ 227 Dec 16, 2020
      Не плохо, а на какие слова он реагирует?
       
      1. TheBatashev Topic starter
        devneon, на те, ккоторые указаны в конфиге
    6. nikonov01
      nikonov01 Apr 7, 2024 67 Mar 21, 2024
      Ну первое очевидно что нужен не бот, а юзербот, далеко не во все чаты ты имеешь право добавить бота, если суть скрипта в отлове людей которые хотят купить услугу, лучше не делать огромный лист с вариациями сообщений, а ловить по regex слово купить, и подобные
       
    7. КРПТ
      КРПТ Apr 7, 2024 4064 Aug 6, 2021
      Ну в принципе не видел подобного, "сталкерам" будет полезно
       
      1. TellS
        КРПТ, я уже делал такого, но код потерян уже :(
      2. zxboxing
        КРПТ, Охота на одноклассниц станет еще лучше
    8. сушняк
      сушняк Apr 8, 2024 15,184 Jan 19, 2021
      Я теперь понимаю почему у меня в рекомендациях «Агент кгб как не допустил 3 мировой войны» Статьи с подобной информацией делают форум и жизнь интересней. Добавить подобного в чаты селлеров и все конкуренты сосут без остановки.
       
    9. GREQUE
      GREQUE Apr 18, 2024 Developer from God 202 Dec 9, 2017
      Все прикольно, но за конфиг в .py файле обложить писюнами
       
    10. value
      value Apr 19, 2024 Синий экран 378 Jan 6, 2022
      Статья полезная, но давно ли начали давать авторку за код?..
       
      1. GREQUE
        value, статья для не прогеров полезная, имхо лучше чем инструкции по проливу трафика которые понятны интуитивно
      2. value
        GREQUE, Не спорю, но ведь тебе даже могут помочь по написанию бота на разных тематических форумах, а за такое давать авторку для меня просто странно..
      3. GREQUE
        value, сама идея бота интересная, я думаю за бота магазин с миллиардом вариантов платёжек, фильтрами и ид, сервисом уведомлений на брокере не дали бы авторку потому что реализовать тяжело, но идея тривиальная, если это что выше переписать на юзербота вообще пушка будет
    11. phosphene
      phosphene Apr 19, 2024 хейтер 1300 Apr 3, 2019
      Слушай, я сначала хотел мимо пройти, но потом увидел, что ты уже год код пишешь и не смог молча пройти:
      Python
      class Settings(object):
      В 3+ питоне не нужно указывать базовый класс наследия (он автоматически его и берет). Да и в целом, хранить токен в коде? Почему не в переменной среды?

      >Открываем консоль ( win+r ) и вводим : pip install aiogram
      Советовать людям в базовый интерпритатор ставить библиотеки?



      Python
          try:
      await bot.delete_webhook(drop_pending_updates=True) # Удаляем вебхуки
      await dp.start_polling(bot) # Бот работает в режиме Long Polling

      except Exception as e:
      print(e)
      Это вообще какой смысл имеет? Аиограмм нынче не в лонг поллинге стартует?

      И в чем вообще смысл делать на аиограмм, почему не пайрограм с юзерботом? docs.pyrogram.org/


      Ты случаем на фрилансе не сидел, где за кол-во строк написанных доплачивали?
       
      1. TheBatashev Topic starter
        phosphene, да , знаю про это) Писал статью ночью , сонный. А так да, юзерботом лучше, просто показал как это делается с помощью обычных ботов
    12. Shadowraze
      Shadowraze Apr 20, 2024 682 Jul 15, 2018
      Мне вот интересно, зачем создавать статью для твоего овнокода? Что мешало закинуть просто сурсы в раздел питона с пояснениями использования? Зачем выводить этот тред в статьи, если по факту тут нет ничего такого?
       
      1. TheBatashev Topic starter
        Shadowraze, Людям нравится задумка :finger_up: , ну закинь раз не нравится мой говнокод
      2. MNARQ
        TheBatashev, правильно, как говориться , критикуешь - предлагай !
    13. Miracle312
      Miracle312 Apr 20, 2024 Вернулся на лолз :) 379 Mar 18, 2018
      Статья годная :coder:
      Может пригодиться где-то)
       
    14. BaFFomet
      BaFFomet Apr 20, 2024 1 Apr 14, 2024
      Создаем бота-подслушку на Python

      Необходимые компоненты:

      Python 3.6 или выше
      Библиотека Telegram Bot API
      Аккаунт Telegram

      Шаг 1. Установка библиотек
      pip install python-telegram-bot

      Шаг 2. Создание бота
      Перейдите на сайт Telegram и создайте нового бота с помощью бота @BotFather. Сохраните его токен API.
      Шаг 3. Импорт библиотек и инициализация бота
      import telegram
      from telegram.ext import Updater, CommandHandler, MessageHandler, Filters

      # Ваш токен API
      YOUR_API_KEY = '123456789:ABCDEFGHIJKLMNOPQRSTUVWXYZ'

      # Инициализация бота
      bot = telegram.Bot(token=YOUR_API_KEY)
      updater = Updater(bot=bot, use_context=True)

      Шаг 4. Обработчик сообщений
      Определим функцию, которая будет обрабатывать все входящие сообщения.
      def echo(update, context):
      text = update.message.text
      context.bot.send_message(chat_id=update.effective_chat.id, text=text)

      Шаг 5. Диспетчеризация обработчика сообщений
      Диспетчеризуем наш обработчик сообщений так, чтобы он срабатывал на все сообщения, содержащие текст (не на команды).
      updater.dispatcher.add_handler(MessageHandler(Filters.text, echo))

      Шаг 6. Запуск бота
      Запустить бота можно с помощью следующего кода:
      updater.start_polling()
      updater.idle()

      Как использовать бота:
      Теперь вы можете отправлять сообщения боту, и он будет повторять их обратно.
      Дополнительные функции:
      Вы можете добавить дополнительные функции в своего бота, например:

      Сохранение сообщений в базу данных
      Модерация сообщений
      Управление администраторами бота
       
      1. leha757
        BaFFomet, если у меня при скачке библиотеки везде и в пичарме и в обычном пайтоне пишет инвалид синтекс, чд. [IMG][IMG][IMG]
      2. lolkek133
        leha757, не знаю актуально или нет, но эта ошибка возникает потому что ты грубо говоря запускаешь динамический код в пайтоне, у которого в синтаксисе нет таких команд. Чтобы всё заработало, открой cmd и скачивай оттуда эту библиотеку
    15. Vov4ok
      Vov4ok Apr 20, 2024 725 Mar 20, 2021
      Бот норм что бы чекать удаленные сообщения в чате а так хз нах он нужен.
       
    16. Непомни
      Непомни Apr 21, 2024 Честный, местный 492 Mar 6, 2024
      это жоска. Я то думал, прям жучок, как в фильмах :roflanFacepalm:
       
    17. PayFun
      PayFun Apr 21, 2024 t.me/FunPayStorerobot - мой шоп по аккичам Funpay 1571 Jul 12, 2021
      ниндзя грам - нееет. Быть админом чтобы чекать недавно удаленные - неееет
       
    18. Aisan
      Aisan Apr 21, 2024 Ничего не продаю и не создаю. Не пишите мне 15,852 Aug 26, 2020
      Статьи, во что вы превратились...
       
    19. ghosti
      ghosti Apr 22, 2024 0 Apr 8, 2024
      TheBatashev в чем прикол бота , так и не понял
       
Top
Loading...