Skip to content

API-kernel/push-cron-bot

Repository files navigation

🤖 PushCron | Умный Планировщик для Telegram

PushCron — это мощный бот для создания напоминаний и регулярных задач. В отличие от простых "будильников", он сочетает дружелюбный интерфейс для обычных пользователей и мощь Cron-синтаксиса для профессионалов.

Умеет отправлять не только текст, но и фото, видео, голосовые и стикеры по расписанию. Поддерживает часовые пояса, работу в группах и шаринг задач.

Python Aiogram Docker License

✨ Ключевые Возможности

📅 Гибкое Расписание

  • Пресеты: Быстрое создание задач: "Ежедневно", "Еженедельно" (с выбором дней), "Ежемесячно", "Ежегодно".
  • Cron Power: Полная поддержка Cron-выражений (5 полей) для сложной логики (например, */15 9-18 * * 1-5).
  • Smart Time: Учет персонального часового пояса пользователя (UTC+X).

📎 Поддержка Медиа

Бот отправляет любые типы контента. Просто перешлите ему файл при создании задачи:

  • 🖼 Фото и Картинки
  • 📹 Видео и "Кружочки" (Video Notes)
  • 🎤 Голосовые сообщения и Аудио
  • 👻 Стикеры

👥 Социальные функции

  • Групповой режим: Добавьте бота в чат, и он будет управлять расписанием группы (настройка происходит в ЛС админа, чтобы не засорять чат).
  • Шаринг задач: Создайте полезную привычку и отправьте ссылку другу. Задача добавится ему в один клик.
  • Sticky Session: Удобный режим управления группой без ввода команд.

🛡 Надежность

  • Бэкапы: Импорт и Экспорт всех задач в текстовом формате (с сохранением ссылок на медиа).
  • Пауза: Возможность поставить задачу (или все сразу) на паузу, не удаляя её.
  • Docker: Полная контейнеризация, база данных SQLite (легко мигрируется на PostgreSQL).

🛠 Технологический стек

  • Язык: Python 3.10+
  • Фреймворк: Aiogram 3.x (полностью асинхронный)
  • Планировщик: APScheduler
  • База данных: SQLAlchemy + aiosqlite (Асинхронная ORM)
  • Деплой: Docker & Docker Compose

🚀 Установка и Запуск

Предварительные требования

  • Установленный Docker и Docker Compose.
  • Токен бота от @BotFather.

1. Клонирование репозитория

git clone https://github.com/your-username/telegram-cron-bot.git
cd telegram-cron-bot

2. Настройка

Создайте файл .env в корне проекта:

cp .env.example .env

Вставьте ваш токен:

BOT_TOKEN=123456789:AAH...Ваш_Токен...

3. Запуск (Docker)

Это рекомендуемый способ. Бот сам создаст базу данных и применит миграции.

# Сборка и запуск в фоновом режиме
docker compose up -d --build

# Просмотр логов
docker logs -f my_cron_bot

4. Запуск (Локально / Без Docker)

# Создать виртуальное окружение
python3 -m venv venv
source venv/bin/activate  # Для Windows: venv\Scripts\activate

# Установить зависимости
pip install -r requirements.txt

# Запустить миграции (первый раз)
python migrate_media.py
python migrate_share.py

# Запустить бота
python main.py

🎮 Гайд по командам

Команда Описание
/add ✨ Создать новую задачу (Запуск мастера настройки)
/list 📋 Интерактивный список ваших задач
/timezone 🌍 Настроить ваш часовой пояс
/export 📤 Получить все задачи текстом (Бэкап)
/import 📥 Загрузить задачи из текста
/help ℹ️ Справка и инструкция

Управление задачами (Пауза, Удаление, Редактирование, Шаринг) доступно через кнопки в команде /list.


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

.
├── handlers/            # Логика бота (Модули)
│   ├── adding.py        # Сценарий создания задачи (FSM)
│   ├── list_view.py     # Просмотр списка и Карточки задач
│   ├── task_actions.py  # Действия (Удалить, Пауза, Редактировать)
│   ├── backup.py        # Импорт/Экспорт
│   └── common.py        # Общие хелперы и настройки
├── services/            # Бизнес-логика
│   └── cron_manager.py  # Обертка над APScheduler и БД
├── database/            # Модели SQLAlchemy
├── keyboards.py         # Генераторы клавиатур
├── main.py              # Точка входа
└── docker-compose.yml   # Конфиг Докера

📄 License

MIT License. Вы можете свободно использовать и модифицировать этот код.

About

🤖 Advanced Telegram Scheduler Bot. Supports Cron syntax, UI presets, Media attachments (photos/voice), Group chats, Timezones & Task Sharing. Built with Aiogram 3 & Docker.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors