Skip to content

Commit 84e2c68

Browse files
committed
feat: add LLM worker service and internationalization support
feat(frontend): implement i18n with react-i18next feat(frontend): add full-page post view and routing feat(frontend): add language toggle component feat(backend): add LLM worker service and status tracking feat(backend): extend post and channel models with LLM fields feat(docker): add LLM worker service to docker-compose feat(docs): add PR and issue templates feat(ci): update gitignore with session files and secrets fix(frontend): improve post dialog layout and styling fix(backend): escape markdown while preserving formatting fix(docker): persist frontend node_modules volume refactor(frontend): reorganize post dialog components refactor(backend): improve database models and schemas docs: add license and code of conduct docs: update contributing guidelines docs: improve env example with descriptions chore: remove deprecated session generation scripts
1 parent 967f21a commit 84e2c68

74 files changed

Lines changed: 5717 additions & 2002 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.env.example

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,28 @@
1-
# Telegram Bot Token
2-
TELEGRAM_BOT_TOKEN=your_telegram_bot_token_here
1+
# 🔑 Telegram API (получить на my.telegram.org)
2+
TELEGRAM_API_ID=your_api_id_here
3+
TELEGRAM_API_HASH=your_api_hash_here
4+
TELEGRAM_SESSION_STRING=your_session_string_here
35

4-
# OpenRouter API Key
6+
# 🤖 Telegram Bot (создать у @BotFather)
7+
TELEGRAM_BOT_TOKEN=your_bot_token_here
8+
9+
# 🧠 OpenRouter AI
510
OPENROUTER_API_KEY=your_openrouter_api_key_here
11+
OPENROUTER_MODEL=anthropic/claude-3-haiku
612

7-
# Database Configuration
8-
DATABASE_URL=postgresql://autoposter:autoposter123@localhost:5432/autoposter
13+
# 💾 База данных
14+
DATABASE_URL=postgresql://autoposter:autoposter123@postgres:5432/autoposter
915

10-
# Redis Configuration
11-
REDIS_URL=redis://localhost:6379
16+
# ⚡ Redis
17+
REDIS_URL=redis://redis:6379/0
1218

13-
# JWT Secret for authentication
14-
JWT_SECRET=your_jwt_secret_here
19+
# 🔐 Безопасность
20+
JWT_SECRET_KEY=your-super-secret-jwt-key-change-this-in-production
21+
JWT_EXPIRE_MINUTES=1440
1522

16-
# Admin credentials
23+
# 👤 Администратор
1724
ADMIN_USERNAME=admin
18-
ADMIN_PASSWORD=admin123
25+
ADMIN_PASSWORD=admin123
26+
27+
# ⚙️ Настройки системы
28+
DEFAULT_CHECK_INTERVAL=300
Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
name: Bug Report
2+
description: Сообщить об ошибке в Auto Poster Bot
3+
title: "[BUG] "
4+
labels: ["bug", "triage"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Спасибо за сообщение об ошибке! Пожалуйста, заполните форму ниже.
10+
11+
- type: textarea
12+
id: description
13+
attributes:
14+
label: Описание ошибки
15+
description: Четкое и краткое описание ошибки
16+
placeholder: Опишите, что произошло...
17+
validations:
18+
required: true
19+
20+
- type: textarea
21+
id: reproduction
22+
attributes:
23+
label: Шаги для воспроизведения
24+
description: Шаги для воспроизведения ошибки
25+
placeholder: |
26+
1. Перейти к '...'
27+
2. Нажать на '...'
28+
3. Прокрутить вниз до '...'
29+
4. Увидеть ошибку
30+
validations:
31+
required: true
32+
33+
- type: textarea
34+
id: expected
35+
attributes:
36+
label: Ожидаемое поведение
37+
description: Что должно было произойти
38+
placeholder: Опишите ожидаемое поведение...
39+
validations:
40+
required: true
41+
42+
- type: textarea
43+
id: actual
44+
attributes:
45+
label: Фактическое поведение
46+
description: Что произошло на самом деле
47+
placeholder: Опишите фактическое поведение...
48+
validations:
49+
required: true
50+
51+
- type: textarea
52+
id: screenshots
53+
attributes:
54+
label: Скриншоты
55+
description: Если применимо, добавьте скриншоты для объяснения проблемы
56+
placeholder: Перетащите изображения сюда или вставьте ссылки
57+
58+
- type: dropdown
59+
id: component
60+
attributes:
61+
label: Компонент
62+
description: Какой компонент затронут?
63+
options:
64+
- Frontend (React)
65+
- Backend API
66+
- Scrapper Service
67+
- Publisher Service
68+
- LLM Worker
69+
- Database
70+
- Docker/Infrastructure
71+
- Documentation
72+
- Other
73+
validations:
74+
required: true
75+
76+
- type: dropdown
77+
id: severity
78+
attributes:
79+
label: Серьезность
80+
description: Насколько серьезна эта ошибка?
81+
options:
82+
- Critical (система не работает)
83+
- High (основная функциональность нарушена)
84+
- Medium (некоторые функции не работают)
85+
- Low (косметические проблемы)
86+
validations:
87+
required: true
88+
89+
- type: textarea
90+
id: environment
91+
attributes:
92+
label: Окружение
93+
description: Информация о вашем окружении
94+
placeholder: |
95+
- OS: [например, Ubuntu 20.04]
96+
- Docker version: [например, 20.10.7]
97+
- Browser: [например, Chrome 91]
98+
- Version: [например, v1.0.0]
99+
validations:
100+
required: true
101+
102+
- type: textarea
103+
id: logs
104+
attributes:
105+
label: Логи
106+
description: Соответствующие логи или сообщения об ошибках
107+
placeholder: Вставьте логи здесь...
108+
render: shell
109+
110+
- type: textarea
111+
id: additional
112+
attributes:
113+
label: Дополнительная информация
114+
description: Любая другая информация об ошибке
115+
placeholder: Добавьте любую другую информацию...
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
name: Feature Request
2+
description: Предложить новую функцию для Auto Poster Bot
3+
title: "[FEATURE] "
4+
labels: ["enhancement", "triage"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Спасибо за предложение новой функции! Пожалуйста, заполните форму ниже.
10+
11+
- type: textarea
12+
id: problem
13+
attributes:
14+
label: Проблема
15+
description: Связана ли ваша функция с проблемой? Опишите её.
16+
placeholder: Меня расстраивает, когда...
17+
validations:
18+
required: false
19+
20+
- type: textarea
21+
id: solution
22+
attributes:
23+
label: Предлагаемое решение
24+
description: Опишите решение, которое вы хотели бы видеть
25+
placeholder: Я хотел бы...
26+
validations:
27+
required: true
28+
29+
- type: textarea
30+
id: alternatives
31+
attributes:
32+
label: Альтернативы
33+
description: Опишите альтернативные решения, которые вы рассматривали
34+
placeholder: Альтернативным решением могло бы быть...
35+
validations:
36+
required: false
37+
38+
- type: dropdown
39+
id: component
40+
attributes:
41+
label: Компонент
42+
description: Какой компонент должен быть изменен?
43+
options:
44+
- Frontend (React)
45+
- Backend API
46+
- Scrapper Service
47+
- Publisher Service
48+
- LLM Worker
49+
- Database
50+
- Docker/Infrastructure
51+
- Documentation
52+
- New Component
53+
validations:
54+
required: true
55+
56+
- type: dropdown
57+
id: priority
58+
attributes:
59+
label: Приоритет
60+
description: Насколько важна эта функция?
61+
options:
62+
- Critical (блокирует работу)
63+
- High (очень важно)
64+
- Medium (было бы хорошо иметь)
65+
- Low (nice to have)
66+
validations:
67+
required: true
68+
69+
- type: checkboxes
70+
id: implementation
71+
attributes:
72+
label: Готовность к реализации
73+
description: Готовы ли вы помочь с реализацией?
74+
options:
75+
- label: Я готов работать над этой функцией
76+
- label: Я могу помочь с тестированием
77+
- label: Я могу помочь с документацией
78+
79+
- type: textarea
80+
id: additional
81+
attributes:
82+
label: Дополнительная информация
83+
description: Любая другая информация о функции
84+
placeholder: Добавьте любую другую информацию...

.github/pull_request_template.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
## Описание изменений
2+
<!-- Опишите ваши изменения здесь -->
3+
4+
## Тип изменения
5+
<!-- Отметьте соответствующие пункты -->
6+
- [ ] 🐛 Исправление ошибки (non-breaking change)
7+
- [ ] ✨ Новая функция (non-breaking change)
8+
- [ ] 💥 Критическое изменение (breaking change)
9+
- [ ] 📚 Обновление документации
10+
- [ ] 🔧 Рефакторинг кода
11+
- [ ] ⚡ Улучшение производительности
12+
- [ ] 🧪 Добавление тестов
13+
14+
## Связанные Issues
15+
<!-- Укажите номера связанных issues -->
16+
Fixes #(issue)
17+
18+
## Как протестировано?
19+
<!-- Опишите тесты, которые вы провели -->
20+
- [ ] Юнит-тесты
21+
- [ ] Интеграционные тесты
22+
- [ ] Ручное тестирование
23+
- [ ] Тестирование в Docker
24+
25+
## Скриншоты (если применимо)
26+
<!-- Добавьте скриншоты изменений UI -->
27+
28+
## Чеклист
29+
- [ ] Мой код следует стилю проекта
30+
- [ ] Я провел самопроверку кода
31+
- [ ] Я прокомментировал сложные участки кода
32+
- [ ] Я обновил документацию
33+
- [ ] Мои изменения не генерируют новых предупреждений
34+
- [ ] Я добавил тесты для новой функциональности
35+
- [ ] Все новые и существующие тесты проходят
36+
- [ ] Зависимые изменения были объединены и опубликованы
37+
38+
## Дополнительная информация
39+
<!-- Любая дополнительная информация о PR -->

0 commit comments

Comments
 (0)