# 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`