mirror of
https://gitverse.ru/kpa39l/chronicle.nixg.ru.git
synced 2026-09-29 09:55:08 +00:00
Add CHANGELOG.md for version tracking
This commit is contained in:
@@ -0,0 +1,139 @@
|
|||||||
|
# Changelog
|
||||||
|
|
||||||
|
Все значимые изменения в проекте Telegram Archiver.
|
||||||
|
|
||||||
|
Формат ведётся в соответствии с [Keep a Changelog](https://keepachangelog.com/ru/1.0.0/),
|
||||||
|
версии — по [Semantic Versioning](https://semver.org/lang/ru/).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## [Unreleased]
|
||||||
|
|
||||||
|
### Planned
|
||||||
|
- CLI тестирование с реальным Telegram каналом
|
||||||
|
- Интеграция с Hugo (экспорт в content/posts/)
|
||||||
|
- Dockerfile и docker-compose для деплоя
|
||||||
|
- Поддержка нескольких каналов одновременно
|
||||||
|
- Прогресс-бар при скачивании (tqdm)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## [1.0.0] — 2026-02-19
|
||||||
|
|
||||||
|
### Добавлено
|
||||||
|
|
||||||
|
#### Core Functionality
|
||||||
|
- **Архивация Telegram-каналов** в локальную файловую систему
|
||||||
|
- **Bundle-структура**: `<channel>/<message_id>/index.md + media`
|
||||||
|
- **Front-matter для Hugo**: `message_id`, `date`, `author`, `reply_to`, `repost_from`, `media_files`
|
||||||
|
- **Дедупликация по message_id**: пропуск уже скачанных постов
|
||||||
|
- **Обработка медиа**: фото, видео, документы, аудио, стикеры, GIF
|
||||||
|
- **Ограничение размера файла**: настраиваемый лимит (по умолчанию 200 MB)
|
||||||
|
- **Отчёт о больших файлах**: `2big2get.md` с ссылками на файлы > MAX_FILE_SIZE
|
||||||
|
- **Обработка репостов**: сохранение оригинального канала и message_id
|
||||||
|
- **Обработка ответов (reply-to)**: относительные ссылки на другие посты
|
||||||
|
|
||||||
|
#### Interfaces
|
||||||
|
- **FastAPI REST API**:
|
||||||
|
- `GET /health` — проверка здоровья
|
||||||
|
- `GET /` — информация об API
|
||||||
|
- `POST /archive` — запуск архивации
|
||||||
|
- `GET /docs` — Swagger UI документация
|
||||||
|
- **CLI интерфейс**:
|
||||||
|
- `--channel` / `-c`: username канала
|
||||||
|
- `--output-dir` / `-o`: папка для архива
|
||||||
|
- `--limit` / `-l`: лимит постов
|
||||||
|
- `--from-message-id` / `-f`: начать с этого ID
|
||||||
|
- `--force`: перескачать существующие
|
||||||
|
|
||||||
|
#### Configuration
|
||||||
|
- **`.env` конфигурация**: API_ID, API_HASH, PHONE, MAX_FILE_SIZE, OUTPUT_DIR, LOG_LEVEL
|
||||||
|
- **Pydantic Settings**: валидация credentials, type hints
|
||||||
|
- **Graceful startup**: сервер запускается даже без .env (с предупреждением)
|
||||||
|
|
||||||
|
#### Logging & Observability
|
||||||
|
- **Логирование в файл**: `YYYYMMDD-channel.log`
|
||||||
|
- **Логирование в консоль**: stdout с цветным выводом
|
||||||
|
- **OpenTelemetry ready**: поддержка tracing (отключено по умолчанию)
|
||||||
|
|
||||||
|
#### Development Tools
|
||||||
|
- **Virtual environment**: `uv venv` для создания
|
||||||
|
- **pyproject.toml**: полная метаданные проекта
|
||||||
|
- **Pre-commit hooks**: ruff, mypy, pre-commit-hooks
|
||||||
|
- **Тесты**: pytest для models и config
|
||||||
|
- **Конфигурация linting**: ruff, mypy, pytest в pyproject.toml
|
||||||
|
- **DEVELOPMENT.md**: гайд для разработчиков
|
||||||
|
|
||||||
|
### Изменено
|
||||||
|
- **config.py**: credentials сделаны опциональными для graceful startup
|
||||||
|
- **app/main.py**: улучшены сообщения об ошибках (503 с деталями)
|
||||||
|
- **.gitignore**: добавлены .venv/, .mypy_cache/, .pytest_cache/
|
||||||
|
|
||||||
|
### Исправлено
|
||||||
|
- Ошибка запуска сервера без .env файла
|
||||||
|
- Отсутствие валидации credentials до вызова API
|
||||||
|
- Missing imports при установке зависимостей
|
||||||
|
|
||||||
|
### Технические детали
|
||||||
|
|
||||||
|
#### Dependencies
|
||||||
|
```
|
||||||
|
fastapi>=0.109.0
|
||||||
|
uvicorn[standard]>=0.27.0
|
||||||
|
click>=8.1.7
|
||||||
|
telethon>=1.34.0
|
||||||
|
pydantic>=2.5.3
|
||||||
|
pydantic-settings>=2.1.0
|
||||||
|
python-dotenv>=1.0.0
|
||||||
|
pyyaml>=6.0.1
|
||||||
|
opentelemetry-api>=1.22.0
|
||||||
|
opentelemetry-sdk>=1.22.0
|
||||||
|
opentelemetry-instrumentation-fastapi>=0.43b0
|
||||||
|
httpx>=0.26.0
|
||||||
|
aiofiles>=23.2.1
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Dev Dependencies
|
||||||
|
```
|
||||||
|
pytest>=8.0.0
|
||||||
|
pytest-asyncio>=0.23.0
|
||||||
|
pytest-cov>=4.1.0
|
||||||
|
ruff>=0.1.0
|
||||||
|
mypy>=1.8.0
|
||||||
|
pre-commit>=3.6.0
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Testing
|
||||||
|
- Синтаксис: `python -m py_compile` (все файлы)
|
||||||
|
- Импорты: проверены в virtual environment
|
||||||
|
- FastAPI server: старт без .env
|
||||||
|
- Endpoints: `/health`, `/`, `/archive` протестированы
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## [0.1.0] — 2026-02-19 (Initial Commit)
|
||||||
|
|
||||||
|
### Добавлено
|
||||||
|
- Первоначальная структура проекта
|
||||||
|
- Базовая реализация Telethon клиента
|
||||||
|
- Черновик FastAPI приложения
|
||||||
|
- README.md с описанием
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Типы изменений
|
||||||
|
|
||||||
|
- **Added** — новые функции
|
||||||
|
- **Changed** — изменения в существующих функциях
|
||||||
|
- **Deprecated** — скоро будут удалены
|
||||||
|
- **Removed** — удалённые функции
|
||||||
|
- **Fixed** — исправления ошибок
|
||||||
|
- **Security** — улучшения безопасности
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Ссылки
|
||||||
|
|
||||||
|
- [Репозиторий проекта](https://gitea.nixg.ru/estorozhenko/c7e.ru)
|
||||||
|
- [Документация](README.md)
|
||||||
|
- [Гайд для разработчиков](DEVELOPMENT.md)
|
||||||
Reference in New Issue
Block a user