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