# 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-структура**: `//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)