mirror of
https://gitverse.ru/kpa39l/chronicle.nixg.ru.git
synced 2026-09-29 18:05:07 +00:00
140 lines
5.3 KiB
Markdown
140 lines
5.3 KiB
Markdown
# 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)
|