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 - зависимости.
Код
Теперь покажу немного кода. Весь код будет доступен по ссылке, здесь покажу только основные моменты.
В этой функции мы получаем всех пользователей из БД, а затем получаем значение, настроенного времени с текущим, если совпадает отправляем ежедневную сводку.
В коде есть замечание, я получаю текущее время и прибавляю к нему timedelta, это из-за часовых поясов, у меня на сервере -3 от Москвы.
Дальше идёт обработка текстовых сообщений пользователя, а именно какие кнопки были нажаты
С основными моментами в файле bot.py, вроде всё.
Больше всего было интересно работать с БД, написал функции для работы с ней.
В результате получаем словарь со всеми нужными значениями.
Про парсинг писать особо нечего, ибо там все просто, кому интересно, можете глянуть код на GitFlic.
Пишите, что было бы интересно ещё добавить в сводку, а также предлагайте, что можно улучшить в коде.
P.S. Вы знали, что у нас есть российский аналог GitHub? Я не знал, а теперь знаю, так что проекты буду там свои выкладывать отныне. Поддержим российского производителя))
P.P.S. Подписывайтесь на мой телеграм канал. Попробовать бота: @pytginform_bot.










Программирование на python
1K постов12K подписчика
Правила сообщества
Публиковать могут пользователи с любым рейтингом. Однако!
Приветствуется:
• уважение к читателям и авторам
• конструктивность комментариев
• простота и информативность повествования
• тег python2 или python3, если актуально
• код публиковать в виде цитаты, либо ссылкой на специализированный сайт
Не рекомендуется:
• допускать оскорбления и провокации
• распространять вредоносное ПО
• просить решить вашу полноценную задачу за вас
• нарушать правила Пикабу