Простой и удобный Telegram бот для хранения заметок с использованием SQLite базы данных.
- ✅ Создание заметок с именем и содержимым
- ✅ Просмотр всех сохраненных заметок
- ✅ Удаление заметок по ID (NEW! v2.0)
- ✅ Просмотр отдельной заметки (NEW! v2.0)
- ✅ Система ID для каждой заметки (NEW! v2.0)
- ✅ Отмена создания заметки в любой момент
- ✅ Хранение данных в локальной SQLite базе
- ✅ Finite State Machine (FSM) для управления состояниями
- ✅ Асинхронная обработка запросов
- ✅ Удобные inline-кнопки для навигации (NEW! v2.0)
- Python 3.12+
- aiogram 3.x - фреймворк для Telegram ботов
- aiosqlite - асинхронная работа с SQLite
- python-dotenv - управление переменными окружения
- uv - современный менеджер пакетов для Python
-
Установите uv:
Linux/macOS:
curl -LsSf https://astral.sh/uv/install.sh | shWindows:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
-
Клонируйте репозиторий:
git clone https://github.com/xvin84/simple-notes-bot.git cd simple-notes-bot -
Синхронизируйте зависимости:
uv sync
Это автоматически создаст виртуальное окружение и установит все зависимости.
-
Настройте переменные окружения:
cp .env.example .env # Отредактируйте .env и добавьте ваш токен от @BotFather -
Запустите бота:
uv run main.py
-
Клонируйте репозиторий:
git clone https://github.com/xvin84/simple-notes-bot.git cd simple-notes-bot -
Создайте виртуальное окружение:
python -m venv venv source venv/bin/activate # Linux/macOS # или venv\Scripts\activate # Windows
-
Установите зависимости:
pip install -r requirements.txt
-
Настройте переменные окружения:
cp .env.example .env # Отредактируйте .env и добавьте ваш токен от @BotFather -
Запустите бота:
python main.py
- Откройте Telegram и найдите @BotFather
- Отправьте команду
/newbot - Следуйте инструкциям для создания бота
- Скопируйте полученный токен в файл
.env
/start- Приветственное сообщение и список всех команд/new- Создать новую заметку/list- Показать все сохраненные заметки/remove <id>- Удалить заметку по ID (например:/remove 5) ⭐ NEW!/cancel- Отменить текущее действие
- Отправьте
/newдля создания заметки - Введите имя заметки (например: "Список покупок")
- Введите содержание заметки (например: "Молоко, хлеб, яйца")
- Заметка сохранена! Бот покажет её ID и кнопку "Посмотреть заметку" 📝
- Отправьте
/listдля просмотра всех заметок - Нажмите на кнопку "Посмотреть 👁️" рядом с нужной заметкой
- Бот покажет полное содержание заметки
Способ 1 (через кнопку):
- Откройте заметку (через
/list→ "Посмотреть") - Нажмите кнопку "Удалить заметку ❌"
- Готово! ✅
Способ 2 (через команду):
- Узнайте ID заметки через
/list - Отправьте
/remove <id>(например:/remove 5) - Готово! ✅
simple-notes-bot/
├── main.py # Основной файл бота
├── config.py # Конфигурация и настройки
├── requirements.txt # Зависимости для pip
├── pyproject.toml # Конфигурация проекта для uv
├── uv.lock # Lock-файл зависимостей
├── .env.example # Пример файла с переменными окружения
├── .gitignore # Игнорируемые Git файлом
└── README.md # Документация
# Создаются автоматически:
├── .env # Ваши переменные окружения (не в Git!)
└── notes.db # База данных SQLite (не в Git!)
Файл .env поддерживает следующие переменные:
TOKEN=your_bot_token_here # Обязательно: токен от BotFather
DB_PATH=notes.db # Опционально: путь к файлу БДБот использует SQLite с автоматической миграцией схемы:
- Каждая заметка имеет уникальный ID (
PRIMARY KEY AUTOINCREMENT) - Автоматическое обновление структуры БД при первом запуске
- Сохранение всех существующих данных при обновлении
- 🆕 Кнопка "Посмотреть заметку" после создания
- 👁️ Кнопка "Посмотреть" в списке заметок
- ❌ Кнопка "Удалить" при просмотре заметки
- 📒 Кнопка "Просмотреть все заметки" после удаления
- ❌ Кнопка "Отмена" при создании заметки
Это учебный проект, созданный для демонстрации работы с:
- Telegram Bot API через aiogram
- Асинхронным программированием на Python
- SQLite базой данных с миграциями
- Finite State Machine (FSM)
- Inline клавиатурами в Telegram
Не стесняйтесь форкать, экспериментировать и улучшать код!
- ➕ Добавлена система ID для заметок
- ➕ Реализовано удаление заметок через команду и кнопку
- ➕ Добавлен просмотр отдельной заметки по ID
- ➕ Создано 4 типа inline-кнопок для удобной навигации
- 🔧 Реализована автоматическая миграция базы данных
- 🎨 Улучшен UX с эмодзи и информативными сообщениями
- ➕ Базовое создание и просмотр заметок
- ➕ Отмена создания через /cancel
- ➕ FSM для управления состояниями
Этот проект создан в образовательных целях и распространяется свободно.
xvin84
- GitHub: @xvin84
⭐ Если проект был полезен, поставьте звездочку на GitHub!