telegram bot

This commit is contained in:
Kirchik
2025-08-02 22:39:11 +02:00
parent 255fff75e2
commit d5ce15c3b6
29 changed files with 1497 additions and 219 deletions
+162
View File
@@ -0,0 +1,162 @@
# 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`