162 lines
6.6 KiB
Markdown
162 lines
6.6 KiB
Markdown
# Telegram Bot для создания постов и планирования путешествий
|
|
|
|
## Функции бота
|
|
|
|
### 📝 Создание постов
|
|
- Создание заголовка и основного текста поста
|
|
- Загрузка фото в лучшем качестве или для быстрой загрузки в `public/images/`
|
|
- Добавление видео
|
|
- Интеграция YouTube видео через Hugo shortcodes
|
|
- Локации с Яндекс.Карт
|
|
- Автоматическое создание Hugo markdown файлов в `content/post/`
|
|
- Генерация правильного front matter для Hugo
|
|
|
|
### 🌍 Календарь поездок
|
|
- Создание названия и описания поездки
|
|
- Добавление фото к поездкам
|
|
- Автоматическое обновление файла `content/plan.md`
|
|
|
|
### 📅 Управление календарём поездок
|
|
- Добавление месячных поездок (системные ежемесячные варианты)
|
|
- Добавление специальных поездок (праздничные и особенные события)
|
|
- Удаление существующих поездок из списка
|
|
- Просмотр всех доступных вариантов поездок
|
|
- Автоматическое обновление выпадающего списка в форме на сайте
|
|
|
|
### 🔄 Git интеграция
|
|
- Автоматический commit всех изменений после создания поста
|
|
- Автоматический commit при обновлении календаря поездок
|
|
- Автоматический push в репозиторий Gitea/GitHub
|
|
- Осмысленные commit сообщения с указанием источника (Telegram бот)
|
|
|
|
## Установка и запуск
|
|
|
|
1. **Установите зависимости:**
|
|
```bash
|
|
pip3 install -r requirements.txt
|
|
```
|
|
|
|
2. **Настройте токен бота:**
|
|
```bash
|
|
export TELEGRAM_BOT_TOKEN="ваш_токен_здесь"
|
|
```
|
|
|
|
Или создайте файл `.env`:
|
|
```
|
|
TELEGRAM_BOT_TOKEN=ваш_токен_здесь
|
|
```
|
|
|
|
3. **Запустите бота:**
|
|
```bash
|
|
./start_bot.sh
|
|
```
|
|
|
|
Или напрямую:
|
|
```bash
|
|
python3 telegram_bot.py
|
|
```
|
|
|
|
## Использование
|
|
|
|
1. Запустите бота командой `/start`
|
|
2. Выберите действие из главного меню:
|
|
- **📝 Создать пост** - для создания новых постов
|
|
- **🌍 Хочу поехать** - для добавления записей в календарь поездок
|
|
- **📅 Управление календарём** - для управления вариантами поездок в форме
|
|
|
|
### Создание поста
|
|
1. Введите заголовок поста
|
|
2. Введите основной текст поста
|
|
3. Используйте кнопки для добавления:
|
|
- 📸 Фото (с выбором качества)
|
|
- 🎥 Видео
|
|
- 🔗 YouTube ссылки
|
|
- 📍 Локации с Яндекс.Карт
|
|
4. Нажмите "✅ Опубликовать пост"
|
|
5. Бот автоматически создаст Hugo markdown файл и сделает Git commit
|
|
|
|
### Календарь поездок
|
|
1. Введите название поездки
|
|
2. Опишите детали поездки
|
|
3. При желании добавьте фото
|
|
4. Сохраните запись
|
|
5. Бот автоматически обновит `plan.md` и сделает Git commit
|
|
|
|
### Управление календарём поездок
|
|
1. **Добавить месячную поездку:**
|
|
- Выберите "➕ Добавить месячную поездку"
|
|
- Введите название в формате "Полёты в [месяц] [год] года"
|
|
- Новая опция автоматически добавится в форму на сайте
|
|
|
|
2. **Добавить специальную поездку:**
|
|
- Выберите "✨ Добавить специальную поездку"
|
|
- Введите название события (например: "Новогодние каникулы в горах")
|
|
- Опция будет добавлена в выпадающий список
|
|
|
|
3. **Удалить поездку:**
|
|
- Выберите "❌ Удалить поездку"
|
|
- Выберите поездку из списка для удаления
|
|
- Опция будет удалена из формы на сайте
|
|
|
|
4. **Просмотреть список:**
|
|
- Выберите "📋 Просмотреть список"
|
|
- Увидите все текущие варианты поездок
|
|
|
|
## Интеграция с Hugo и Git
|
|
|
|
### Структура файлов
|
|
- `content/post/` - markdown файлы постов
|
|
- `public/images/` - загруженные изображения и видео
|
|
- `content/plan.md` - файл календаря поездок
|
|
|
|
### Создаваемые файлы
|
|
|
|
#### Hugo пост (content/post/название-поста-20250802.md):
|
|
```markdown
|
|
+++
|
|
title = 'Название поста'
|
|
slug = 'название-поста-20250802'
|
|
date = "2025-08-02T14:30:00"
|
|
image = 'images/post_20250802_143000_1.jpg'
|
|
+++
|
|
|
|
Основной текст поста
|
|
|
|
## Фотографии
|
|
|
|
{{< gallery dir="/images/" />}}
|
|
|
|
## Видео
|
|
|
|
{{< youtube dQw4w9WgXcQ >}}
|
|
|
|
## Локации
|
|
|
|
📍 [Посмотреть на карте](https://yandex.ru/maps/...)
|
|
|
|
{{< rawhtml >}}
|
|
{{< back-to-top >}}
|
|
{{< /rawhtml >}}
|
|
```
|
|
|
|
### Git коммиты
|
|
|
|
#### Пример коммита для поста:
|
|
```
|
|
Добавлен новый пост: Название поста
|
|
|
|
🤖 Создано через Telegram бота
|
|
```
|
|
|
|
#### Пример коммита для календаря:
|
|
```
|
|
Обновлен календарь поездок: Поездка в горы
|
|
|
|
🤖 Создано через Telegram бота
|
|
```
|
|
|
|
## Требования
|
|
|
|
- Git репозиторий должен быть настроен с правами на push
|
|
- Бот должен запускаться из корня Hugo проекта
|
|
- Необходимые Python библиотеки: `python-telegram-bot`, `requests` |