# 📅 Руководство по планировщику постов

## Описание
Планировщик постов позволяет администраторам чата планировать публикацию сообщений в указанное время автоматически.

## 🚀 Быстрый старт

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`)
- Проверьте права бота в чате
- Убедитесь, что время на сервере правильное

**Посты не сохраняются:**
- Проверьте права доступа к базе данных
- Убедитесь, что пользователь является администратором чата
- Проверьте формат команды и времени