Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📝 Telegram Notes Bot

Простой и удобный 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

📦 Установка

Вариант 1: Через uv (рекомендуется)

  1. Установите uv:

    Linux/macOS:

    curl -LsSf https://astral.sh/uv/install.sh | sh

    Windows:

    powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
  2. Клонируйте репозиторий:

    git clone https://github.com/xvin84/simple-notes-bot.git
    cd simple-notes-bot
  3. Синхронизируйте зависимости:

    uv sync

    Это автоматически создаст виртуальное окружение и установит все зависимости.

  4. Настройте переменные окружения:

    cp .env.example .env
    # Отредактируйте .env и добавьте ваш токен от @BotFather
  5. Запустите бота:

    uv run main.py

Вариант 2: Через pip

  1. Клонируйте репозиторий:

    git clone https://github.com/xvin84/simple-notes-bot.git
    cd simple-notes-bot
  2. Создайте виртуальное окружение:

    python -m venv venv
    source venv/bin/activate  # Linux/macOS
    # или
    venv\Scripts\activate  # Windows
  3. Установите зависимости:

    pip install -r requirements.txt
  4. Настройте переменные окружения:

    cp .env.example .env
    # Отредактируйте .env и добавьте ваш токен от @BotFather
  5. Запустите бота:

    python main.py

🚀 Использование

Получение токена бота

  1. Откройте Telegram и найдите @BotFather
  2. Отправьте команду /newbot
  3. Следуйте инструкциям для создания бота
  4. Скопируйте полученный токен в файл .env

Команды бота

  • /start - Приветственное сообщение и список всех команд
  • /new - Создать новую заметку
  • /list - Показать все сохраненные заметки
  • /remove <id> - Удалить заметку по ID (например: /remove 5) ⭐ NEW!
  • /cancel - Отменить текущее действие

Пример использования

Создание заметки:

  1. Отправьте /new для создания заметки
  2. Введите имя заметки (например: "Список покупок")
  3. Введите содержание заметки (например: "Молоко, хлеб, яйца")
  4. Заметка сохранена! Бот покажет её ID и кнопку "Посмотреть заметку" 📝

Просмотр заметок:

  1. Отправьте /list для просмотра всех заметок
  2. Нажмите на кнопку "Посмотреть 👁️" рядом с нужной заметкой
  3. Бот покажет полное содержание заметки

Удаление заметки:

Способ 1 (через кнопку):

  1. Откройте заметку (через /list → "Посмотреть")
  2. Нажмите кнопку "Удалить заметку ❌"
  3. Готово! ✅

Способ 2 (через команду):

  1. Узнайте ID заметки через /list
  2. Отправьте /remove <id> (например: /remove 5)
  3. Готово! ✅

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

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

Не стесняйтесь форкать, экспериментировать и улучшать код!

📝 История версий

v2.0 (Текущая версия)

  • ➕ Добавлена система ID для заметок
  • ➕ Реализовано удаление заметок через команду и кнопку
  • ➕ Добавлен просмотр отдельной заметки по ID
  • ➕ Создано 4 типа inline-кнопок для удобной навигации
  • 🔧 Реализована автоматическая миграция базы данных
  • 🎨 Улучшен UX с эмодзи и информативными сообщениями

v1.0

  • ➕ Базовое создание и просмотр заметок
  • ➕ Отмена создания через /cancel
  • ➕ FSM для управления состояниями

📝 Лицензия

Этот проект создан в образовательных целях и распространяется свободно.

👤 Автор

xvin84


⭐ Если проект был полезен, поставьте звездочку на GitHub!

About

Simple Telegram bot for note-taking with SQLite storage

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages