3

Inform Bot Обновление

Приветствую в своём блоге, сегодня я расскажу вам о своём небольшом проекте. Недавно я уже писал, про этого бота, это был первый проект такого плана. До этого я никогда раньше не писал ботов, поэтому этот проект, так называемая, "проба пера") В этом обновлении я добавил базу данных к боту, вместо файла json. Сейчас мы попробуем разобрать весь код подробнее.

Структура проекта:

-data/

- - - - -db.db

-.env

-bot.py

-btns.py

-db_tool.py

-parse_func.py

-requirements.txt

Немного расскажу о структуре проекта, имеем папку data/ в ней лежит файл базы данных db.db, БД использовал SQLite, она отлично подошла для такого небольшого проекта.

Файл .env содержит переменные окружения, там у нас записан токен бота, токен Open Weather Map и директория, из которой подтягивается БД.

Файл bot.py содержит основной код программы, btns.py - кнопки для бота решил поместить в отдельный файл, чтобы разгрузить основной.

Файл db_tool.py содержит функции для работы с базой данных, parse_func.py - функции парсинга данных.

Файл requirements.txt - зависимости.

Код

Теперь покажу немного кода. Весь код будет доступен по ссылке, здесь покажу только основные моменты.

bot.py

Функция для проверки событий в другом потоке

Функция для проверки событий в другом потоке

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

В коде есть замечание, я получаю текущее время и прибавляю к нему timedelta, это из-за часовых поясов, у меня на сервере -3 от Москвы.

В коде есть замечание, я получаю текущее время и прибавляю к нему timedelta, это из-за часовых поясов, у меня на сервере -3 от Москвы.

Функция для получения значений, записанных в БД и отправка пользователю

Функция для получения значений, записанных в БД и отправка пользователю

Запускаем бота и поток с проверкой времени

Запускаем бота и поток с проверкой времени

Обрабатываем команду /start

Обрабатываем команду /start

Дальше идёт обработка текстовых сообщений пользователя, а именно какие кнопки были нажаты

для примера кнопка настроек

для примера кнопка настроек

Запускаем бесконечную прослушку бота

Запускаем бесконечную прослушку бота

С основными моментами в файле bot.py, вроде всё.

btns.py

Кнопки в отдельном файле

Кнопки в отдельном файле

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

db_tool.py

Вот пример функции для получения значений по chat_id пользователя

Вот пример функции для получения значений по chat_id пользователя

В результате получаем словарь со всеми нужными значениями.

Про парсинг писать особо нечего, ибо там все просто, кому интересно, можете глянуть код на GitFlic.

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

P.S. Вы знали, что у нас есть российский аналог GitHub? Я не знал, а теперь знаю, так что проекты буду там свои выкладывать отныне. Поддержим российского производителя))

P.P.S. Подписывайтесь на мой телеграм канал. Попробовать бота: @pytginform_bot.

Правила сообщества

Публиковать могут пользователи с любым рейтингом. Однако!


Приветствуется:

• уважение к читателям и авторам

• конструктивность комментариев

• простота и информативность повествования

• тег python2 или python3, если актуально

• код публиковать в виде цитаты, либо ссылкой на специализированный сайт


Не рекомендуется:

• допускать оскорбления и провокации

• распространять вредоносное ПО

• просить решить вашу полноценную задачу за вас

• нарушать правила Пикабу

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества