mirror of
https://github.com/FerraSoft/bottohelp.git
synced 2026-08-06 21:55:03 +00:00
feat: добавлен планировщик постов по расписанию
This commit is contained in:
@@ -0,0 +1,107 @@
|
||||
# 📅 Руководство по планировщику постов
|
||||
|
||||
## Описание
|
||||
Планировщик постов позволяет администраторам чата планировать публикацию сообщений в указанное время автоматически.
|
||||
|
||||
## 🚀 Быстрый старт
|
||||
|
||||
1. **Запустите планировщик:**
|
||||
```bash
|
||||
python scheduler.py
|
||||
```
|
||||
|
||||
2. **Используйте команды в Telegram:**
|
||||
- `/schedule_post +1h Привет всем!` - запланировать пост через час
|
||||
- `/list_posts` - посмотреть все запланированные посты
|
||||
- `/delete_post 1` - удалить пост с ID 1
|
||||
|
||||
## 📋 Доступные команды
|
||||
|
||||
### `/schedule_post [время] [текст]`
|
||||
Планирует публикацию поста в указанное время.
|
||||
|
||||
**Форматы времени:**
|
||||
- **Относительное время:**
|
||||
- `+30m` - через 30 минут
|
||||
- `+2h` - через 2 часа
|
||||
- `+1d` - через 1 день
|
||||
|
||||
- **Абсолютное время:**
|
||||
- `2024-01-15 14:30:00` - 15 января 2024 года в 14:30
|
||||
- `2024-01-15 14:30` - то же самое без секунд
|
||||
|
||||
**Примеры:**
|
||||
```
|
||||
/schedule_post +1h Ежедневное приветствие!
|
||||
/schedule_post +30m Напоминание о встрече
|
||||
/schedule_post 2024-01-15 09:00 Доброе утро!
|
||||
```
|
||||
|
||||
### `/list_posts`
|
||||
Показывает список всех запланированных постов с информацией:
|
||||
- ID поста
|
||||
- Время публикации
|
||||
- Автор поста
|
||||
- Текст поста (первые 100 символов)
|
||||
|
||||
### `/delete_post [ID]`
|
||||
Удаляет запланированный пост по его ID.
|
||||
|
||||
**Пример:**
|
||||
```
|
||||
/delete_post 5
|
||||
```
|
||||
|
||||
### `/publish_now [ID]`
|
||||
Немедленно публикует пост и удаляет его из планировщика.
|
||||
|
||||
**Пример:**
|
||||
```
|
||||
/publish_now 3
|
||||
```
|
||||
|
||||
## ⚙️ Как это работает
|
||||
|
||||
1. **База данных** - все посты хранятся в таблице `scheduled_posts`
|
||||
2. **Планировщик** (`scheduler.py`) работает в фоне и проверяет посты каждые 30 секунд
|
||||
3. **Автопубликация** - посты публикуются автоматически в указанное время
|
||||
4. **Логирование** - все действия записываются в логи планировщика
|
||||
|
||||
## 🔧 Структура базы данных
|
||||
|
||||
Таблица `scheduled_posts` содержит:
|
||||
- `post_id` - уникальный идентификатор поста
|
||||
- `chat_id` - ID чата для публикации
|
||||
- `text` - текст поста
|
||||
- `image_path` - путь к изображению (если есть)
|
||||
- `schedule_time` - время публикации
|
||||
- `created_by` - ID пользователя, создавшего пост
|
||||
- `status` - статус поста (`scheduled`/`published`)
|
||||
- `published_at` - время фактической публикации
|
||||
- `created_at` - время создания поста
|
||||
|
||||
## 📝 Примечания
|
||||
|
||||
- Только администраторы чата могут управлять постами по расписанию
|
||||
- Планировщик должен работать постоянно для автоматической публикации
|
||||
- Рекомендуется запускать планировщик в отдельном терминале или как сервис
|
||||
- Все посты сохраняются в истории даже после публикации
|
||||
|
||||
## 🔍 Мониторинг
|
||||
|
||||
Для мониторинга работы планировщика проверяйте:
|
||||
1. Логи планировщика в терминале
|
||||
2. Статус постов командой `/list_posts`
|
||||
3. Лог публикаций в основном боте
|
||||
|
||||
## 🛠️ Устранение неисправностей
|
||||
|
||||
**Планировщик не публикует посты:**
|
||||
- Убедитесь, что планировщик запущен (`python scheduler.py`)
|
||||
- Проверьте права бота в чате
|
||||
- Убедитесь, что время на сервере правильное
|
||||
|
||||
**Посты не сохраняются:**
|
||||
- Проверьте права доступа к базе данных
|
||||
- Убедитесь, что пользователь является администратором чата
|
||||
- Проверьте формат команды и времени
|
||||
Reference in New Issue
Block a user