Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NotifyEdge Bot

Telegram-бот для напоминаний с гибкими расписаниями, мультипользовательской поддержкой и панелью администратора.

A Telegram reminder bot with flexible scheduling, multi-user support and an admin panel.

Live → @NotifyEdge_bot


Возможности / Features

  • 🌅 Ежедневные напоминания в заданное время
  • 📅 По дням недели (один или несколько)
  • 🔄 Каждые N дней
  • 1️⃣ Однократные напоминания — сегодня, завтра или на конкретную дату
  • 🔖 Опциональное название напоминания (с авто-нумерацией)
  • ⏰ Действия после уведомления — выполнено, отложить (15 мин / 30 мин / 1 час), отключить
  • 🌍 Индивидуальный часовой пояс для каждого пользователя
  • ⛔ Лимит 50 активных напоминаний на пользователя
  • 🛡 Панель администратора — статистика, список пользователей, поиск, рассылка

Как работает / How it works

При добавлении напоминания бот вычисляет ближайшее время срабатывания и создаёт задание в APScheduler. После каждого срабатывания задание автоматически пересчитывается на следующий интервал. При перезапуске все активные напоминания восстанавливаются из базы данных.

When a reminder is added, the bot calculates the nearest fire time and schedules a job via APScheduler. After each trigger, the job is automatically rescheduled for the next occurrence. On restart, all active reminders are recovered from the SQLite database.


Требования / Requirements

  • Python 3.11+
  • Токен Telegram-бота от @BotFather
  • Telegram ID администратора (получить через @userinfobot)

Установка / Setup

git clone https://github.com/schmdtt/NotifyEdge.git
cd NotifyEdge
python -m venv venv
source venv/bin/activate   # Windows: venv\Scripts\activate
pip install -r requirements.txt

Скопируй .env.example в .env и заполни:

BOT_TOKEN=your_bot_token_here
ADMIN_ID=your_telegram_id

Запуск:

python bot.py

Деплой на сервер / Production

[Unit]
Description=NotifyEdge Bot
After=network.target

[Service]
WorkingDirectory=/opt/notifyedge
ExecStart=/opt/notifyedge/venv/bin/python /opt/notifyedge/bot.py
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
systemctl enable --now notifyedge
journalctl -u notifyedge -f

Структура проекта / Project structure

├── bot.py                   # Точка входа / Entry point
├── config.py                # Переменные окружения / Environment config
├── database.py              # SQLite CRUD
├── scheduler.py             # APScheduler — планирование заданий
├── handlers/
│   ├── start.py             # Онбординг, выбор таймзоны
│   ├── menu.py              # Главное меню
│   ├── add_reminder.py      # FSM добавления напоминания
│   ├── list_reminders.py    # Просмотр и редактирование
│   ├── notifications.py     # Кнопки действий на уведомлении
│   ├── settings.py          # Настройки пользователя
│   └── admin.py             # Панель администратора
├── keyboards/
│   ├── main.py
│   ├── reminder.py
│   └── timezone.py
└── utils/
    └── time_utils.py        # Расчёт расписаний, форматирование времени

Стек / Stack

  • aiogram 3.x — Telegram Bot API
  • APScheduler — планировщик задач
  • aiosqlite — асинхронный SQLite
  • pytz — работа с часовыми поясами

About

Telegram reminder bot with flexible scheduling and admin panel

Topics

Resources

Stars

11 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages