Предисловие
Всем привет, дорогие друзья, эта статья написана человеком, который не имеет глобального опыта в программировании и реализует проекты как самоучка, выбирайте сами кого хотите читать, ведь если вы великий программист, вы вряд ли бы наткнулись на эту статью. Я буду стараться рассказывать всё доступным языком для тех, кто получил базовые знания о python и хочет как то применять эти навыки в своей жизни. Мое образование помогает мне использовать python для реализации каких - то скриптов, которые могут облегчить жизнь системного администратора.
Создание логики для бота
Сегодня в этой статье я расскажу как создать телеграмм бота, с помощью которого я смогу запрашивать состояние сервера, находясь в любой точке мира.
Перед тем как писать бота нужно выбрать среду разработки для редактирования кода. Мой выбор пал на PyCharm эта IDE мне уже знакома, так как с помощью этой утилиты, я заканчивал курсы основ алгоритмизации и программирования. На официальном сайте разработчиков можно скачать PyCharm Community Edition и с её помощью разобраться с языком программирования ведь она совершенно бесплатна. Когда мы скачали и установили PyCharm, нам нужно скачать сам язык ,а так - же необходимые библиотеки для использования в своем проекте.
Для реализации кода для бота я использовал библиотеку «Telebot», с ней я уже пытался работать ранее поэтому навыки и примерное понимание как мне может помочь эта библиотека у меня есть. А так же я использовал библиотеку «psutil» эта библиотека помогла мне реализовать идею с мониторингом ресурсов, именно она и занимается вытаскиванием этой информации из системы. Установить эти библиотеки мы можем с помощью команды pip install «НАЗВАНИЕ БИБЛИОТКИ» в CMD ОС Windows.
Когда библиотеки скачены, нам необходимо создать чистый проект. После чего с помощью трех команд импортировать библиотеки в сам проект. Делается это с помощью команды Import.
Если вы все сделали правильно, то никаких ошибок в проекте не будет и мы можем приступить к следующему шагу.
Следующим шагом является создание бота на самой платформе телеграмма. Реализовать это можно с помощью другого бота под названием @BotFather когда мы введем команду /newbot нам предложат как - то назвать этого самого бота, я выберу название «MS» просто как пример и сделаю приставку _ bot, всё вместе будет звучать как MS_bot. Когда мы создадим своего бота, нам botfathet даст токен, который мы будем использовать в дальнейшем проекте.
Но раз мы уже получили этот токен, я его сразу и введу в свой проект в переменной токен.
После чего я ввожу переменные с буквами диска и делаю еще одни переменные уже с методом psutil.disk_usage, которая будет измерять для меня количество свободного места на моих накопителях и сразу же преобразовывать их в гигабайты.
Дальше я создам функцию в которой использую метод psutil.cpu_percent. Для чего мне нужна эта функция здесь? Ответ прост, эта функция в реальном времени дает мне информацию о моем центральном процессоре, а именно степень его загрузки. Так как замеры происходят только в момент, когда бот запущен, мне и нужна эта функция, ведь когда я вызываю значения через тг бота, она будет каждый раз срабатывать.
Далее для своего проекта я прописал принты, они мне нужны что бы я понимал, работает ли логика моего проекта.
После того как я запустил проект комбинацией shift+f10 я увидел значение в консоли и сравнил его с показателями проводника и диспетчера задач, они оказались полностью похожи, а это значит что логика проекта работает именно так, как я ее задумывал.
Здесь у более продвинутого пользователя, может возникнуть вопрос, а почему функции для замеров дисков дают информацию только от полученных значений после запуска бота? Это сделано потому что значения дисков изменяются более редко, относительно CPU, а данный бот можно будет запускать удаленно и мониторить эти значения именно в тот момент, когда бот только был запущен. На фон всех задач я решил, что пускать этого бота пока не буду, но если мне нужна будет эта необходимость, я изменю это в самом проекте.
Теперь приступим к следующему этапу, а именно созданию логики для самого бота. Так как в проекте уже есть переменная токен, я просто создам новую переменную с методом telebot.Telebot и передам ей значение нашего токена.
Далее с помощью декоратора я создам функцию start, которая будет срабатывать в тот момент, когда мы напишем эту команду боту. Так – же здесь я создам те самые кнопки, которые должны будут появится после запуска бота, для выбора клиента о получение информации. И на этом же этапе я прописал ответ, который мы будем получать после запуска бота.
Следующим шагом мы создадим еще один декоратор с функцией func, которая будет работать на основе условного оператора, сделано это для того, что бы клиент после выбора команды получал именно ту информацию, которую он выбрал. А так же я сделал условие, которое будет срабатывать в том случае, если при замерах диска, там будет менее 10 гб свободного места.
Ну и последним шагом мы в коде должны прописать запуск самого бота, делается это просто двумя строчками.
И теперь когда мы запустим проект, мы можем воспользоваться нашим ботом.
После команды /start бот написал мне "привет" и вставил мой ник из телеграмма.
После запроса необходимой информации бот выдал мне данные о моей системе, а это значит, что мы всё сделали правильно.
На самом деле, в этом проекте я показал только маленькую часть библиотеки, ведь это очень мощный инструмент для мониторинга компонентов компьютера, ведь с помощь psutil можно получать сведения о системе, о ОЗУ, о сетевом подключение и тд. Теперь дорогие мои читатели используя информацию с этой статьи и официальных сайтов библиотек вы можете создавать очень сильные инструменты, которые возможно могут вам помочь в повседневной жизни или на работе.