
Этот многофункциональный бот может сделать все всего! Это ток, URL -адрес укорачивается и даже становится скучно, если вы понятия не имеете, что делать. Он был разработан на моем канале Twitch Live с целью изучения различных методов, функций и реализации идей только в одном проекте. Кроме того, он не собирает никаких данных от пользователя, который взаимодействует с ним на Telegram, отвечает только с помощью запросов.
Ниже вы можете увидеть, какие API и технологии использовались в проекте, инструкции по установке необходимых пакетов и использованию приложения. Проект был завершен и помещен для работы в облаке, гарантируя, что каждый сможет узурф в любое время. Просто добавьте @bittoinlivebot на Telegram и повеселитесь!
Платформа, используемая для запуска бота в облаке, была Heroku, так как она быстро, просто и эффективна. Использование этой платформы не является обязательным для выполнения бота и облаков, так как она может работать локально на вашей машине или других платформах, таких как AWS, Google и другие.
Список API, используемых при разработке бота:
Источник: публичный список API на GitHub
Основные пакеты Python, используемые при разработке бота
Версия Python используется в проекте: Python 3.8
Чтобы установить пакеты, которые использовались в этом проекте, и воспроизвести их на вашем компьютере, или создать другую, основываясь на этом, для выработки необходима некоторая информация! Во -первых, если вы хотите повторить в своем собственном боте, вам нужно будет создать своего бота на телеграмме, используя чат @BotFather . В этом чате вы можете создать бота, редактировать команды, добавить описание и т. Д., Но, что наиболее важно, для воспроизведения проекта, он состоит в том, чтобы сохранить токен, сгенерированный в его создании. Этот токен может быть размещен в файле bot.py в проекте, в переменной bot_token , чтобы все функции работали прямо к вашему боту.
Есть два способа установить все необходимое для выполнения кода, вы должны выбрать тот, который вы найдете лучше всего. Через requirements.txt или Pipenv . Конфигурация бота в облаке не будет рассмотрена здесь, так как сама документация платформы (Heroku) имеет шаг, чтобы поставить код, работающий там, но стоит отметить, что по крайней мере один из этих методов установки пакета необходим для конфигурации среды в облаке, а также на вашем компьютере.
Установка с помощью требований.
pip install requirments.txt
Преимущество установки таким образом быстро, просто и легко. Тем не менее, следует отметить, что этот метод гарантирует, что основные библиотеки, используемые в проекте, устанавливаются в их правильных версиях, но не в их дочерних компаниях. С этого момента, возможно, подойдет для этого, но вам не нужно беспокоиться.
Для установки пакетов с помощью Pipenv прост, сначала убедитесь, что Pipenv установлен на вашем компьютере со следующей командой:
pip install pipenv
Затем установите пакеты через файл pipfile.lock, с помощью команды:
pipenv install --ignore-pipfile
При установленном все, вам нужно будет только запустить команду Pipenv Shell в папке проекта, и как только она находится внутри виртуальной среды со всем, что установлено, он обычно запускает код.
pipenv shell
python main.py

В этой теме будет объяснено, как структурирован проект, между файлами и тем, как подключаются коды, чтобы каждый понимал и мог изменить необходимый путь. Способ реализации уже объясняется в документации самих библиотек, поэтому основное внимание будет уделено тем, как он был организован в этом проекте. На следующем рисунке можно наблюдать, как структурированы файлы, и из этого мы введем соединения между ними (папка IMG IMG игнорируется, поскольку она содержит только изображения, используемые в этом чтении).

Проект можно разделить на три раздела:
Вся организация бота и коды функциональности находятся в пределах funcs/ . Файл python main.py содержит только создание объекта класса BOT , который находится внутри bot.py , чтобы выполнить выполнение бота с помощью run() .
Каждая функциональность, созданная для этого проекта, имеет свой класс, class Pokedex() , class Bored() и class Urlshort() . Чтобы сохранить организованный код и прост для технического обслуживания, каждая команда, существующая в боте, переполнена методами класса. В разделе «Использование бота» следует отметить, что имена методов совпадают с именами собственных команд бота, так что нет путаницы в отношении реализации каждой вещи. Поскольку некоторые API были использованы для сбора данных BOT, поэтому каждый класс также имеет свой базовый URL, чтобы хорошо разделить каждый API и организовать их соответствующие запросы и особенности. Ниже можно увидеть пример реализации команды с самой основной командой бота с использованием функции send_message() с письменным текстом для собственного лица, который назвал команду.
def start ( self , update , context ):
context . bot . send_message ( chat_id = update . effective_chat . id , text = "Bem vindo ao bot da transmissão (Ao vivo, não de covid) n Acesse twitch.tv/bittoin para mais informações!" ) Наконец, у нас есть основной класс бота, в файле bot.py , который имеет значение все ранее упомянутые классы функциональности, создает свои соответствующие объекты класса и использует методы для управления реализованными и используемыми командами в онлайн -чате. После того, как у нас будет объект класса нашей функциональности, мы создаем обработчик, где будет проходить метод, который будет вызван ботом и его командой, как можно увидеть ниже:
pokedex_handler = CommandHandler ( 'pokedex' , self . pokedex . pokedex ) Первый аргумент - это имя команды, которая будет вызвана в чате, а второй - метод, который будет вызван при работе. После этого мы используем dispatcher BOT, который отвечает за управление и создание всех созданных обработчиков, чтобы ответить на все запросы пользователей и поддерживать внутреннюю организацию вызовов.
self . dispatcher . add_handler ( pokedex_handler ) В конце процесса у нас есть выполнение самого бота, со всеми его функциями, добавленными в dispatcher , и ждет завершения.
# Inicia a execução do bot
self . updater . start_polling ()
# Roda o bot até apertar CTRL + C ou receber um SIGNAL
self . updater . idle ()Если в выполнении проекта есть какие -либо ошибки, связанные с запросами, включающими ошибку в переводе, получите эту ссылку с решением.
sample/ имеет файлы sample.py и inlinekeyboard.py . Sample.py имеет первые тесты, выполненные в боте в начале жизни, чтобы проверить, как функции библиотеки Telegram для Python работают, чтобы обнаружить и проверить некоторые свойства. Вы можете заметить, что, поскольку все находится в одном файле, его грязно и трудно разделить, так что организация funcs/ была принята. В inlinekeyboard.py пример был взят прямо из документации по библиотеке с целью тестирования клавиш/кнопок в чате Telegram для реализации функции скучного API.
Установка пакетов уже была объяснена ранее в разделе установки, поэтому основное внимание будет уделено файлу Procfile . Procfile - это то, что будет выполнено в облаке через платформу Heroku. Это простой файл и содержит простую команду:
Рабочий: Python main.py
Эта команда просто выделяет экземпляр сервера в облаке (работника) для запуска нашего бота через файл main.py , который активирует выполнение.

Здесь перечислены все функции, которые обсуждались во время письменной и заполненной жизни. Каждая из этих тем была реализована и протестирована вживую. Идея состоит в том, что в течение жизни общественность помогает создавать функции, определять требования и то, как это будет в конце.

В этом разделе будут показаны результаты, полученные с помощью бота и вариантов использования для каждой функциональности. Наслаждайтесь и добавьте бот в телеграмму и тестируйте! Просто ищите @BittoinLiveBot и начните печатать команды в чате.
Если вы хотите увидеть полную и более объясненную демонстрацию того, как все работает, посетите мой Instagram или мой канал на YouTube, в котором будут видео на IGTV/канале со всем и немного больше!
/start Команда /start отображает только приветственное сообщение.


Здесь представлены все команды функциональности Pokédex.
/pokedex nome_pokemon 
/pokedex numero_pokemon 
/habilidades nome_num_pokemon 
/moves nome_num_pokemon 

Здесь представлены все команды URL -функциональности.
/url link 

Здесь все команды инструмента, который выводит вас от скуки, представлены здесь.
/bored 
/participantes num_participantes 