Telegram-бот для напоминаний с гибкими расписаниями, мультипользовательской поддержкой и панелью администратора.
A Telegram reminder bot with flexible scheduling, multi-user support and an admin panel.
Live → @NotifyEdge_bot
- 🌅 Ежедневные напоминания в заданное время
- 📅 По дням недели (один или несколько)
- 🔄 Каждые N дней
- 1️⃣ Однократные напоминания — сегодня, завтра или на конкретную дату
- 🔖 Опциональное название напоминания (с авто-нумерацией)
- ⏰ Действия после уведомления — выполнено, отложить (15 мин / 30 мин / 1 час), отключить
- 🌍 Индивидуальный часовой пояс для каждого пользователя
- ⛔ Лимит 50 активных напоминаний на пользователя
- 🛡 Панель администратора — статистика, список пользователей, поиск, рассылка
При добавлении напоминания бот вычисляет ближайшее время срабатывания и создаёт задание в 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.
- Python 3.11+
- Токен Telegram-бота от @BotFather
- Telegram ID администратора (получить через @userinfobot)
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[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.targetsystemctl enable --now notifyedge
journalctl -u notifyedge -f├── 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 # Расчёт расписаний, форматирование времени
- aiogram 3.x — Telegram Bot API
- APScheduler — планировщик задач
- aiosqlite — асинхронный SQLite
- pytz — работа с часовыми поясами