# ZTORRENT ⚡ **Ztorrent** — это минималистичный и невероятно быстрый консольный (TUI) BitTorrent-клиент, написанный на Go. Он работает прямо в вашем терминале, поддерживает `.torrent` файлы и **magnet-ссылки**, умеет искать пиров через собственный встроенный **DHT-движок** и сохраняет историю всех ваших загрузок и логов. ![ZTORRENT UI](https://raw.githubusercontent.com/veggiedefender/torrent-client/main/.github/demo.png) *(Пример интерфейса — скриншот будет добавлен позже)* --- ## 🔥 Ключевые возможности - 🚀 **Полноценный TUI (Terminal UI)** — стильный и отзывчивый интерфейс прямо в консоли (написан на BubbleTea). - 🧲 **Поддержка Magnet-ссылок** — загрузка метаданных "на лету" через встроенный DHT-сервер и UDP-трекеры. - 📁 **Классические `.torrent` файлы** — парсинг однофайловых и многофайловых торрентов, поддержка огромных раздач. - 💾 **Журнал торрентов (History)** — программа запоминает всё, что вы скачивали, и позволяет быстро перезапустить старую раздачу. - 📝 **Логирование сессий** — подробные логи каждого скачивания аккуратно сохраняются в Markdown-файлы (`~/.ztorrent/logs/`). - ⚡ **Мультитрекерность** — автоматический опрос всех доступных трекеров по HTTP/HTTPS и UDP. - 🖥 **Кроссплатформенность** — работает на macOS, Linux и Windows. --- ## 🛠 Установка (Инструкция) ### Требования Для сборки из исходников вам понадобится установленный [Go (версии 1.21+)](https://go.dev/dl/). ### Шаг 1: Клонирование репозитория Скачайте исходный код к себе на компьютер: ```bash git clone https://github.com/твоё_имя/ztorrent.git cd ztorrent ``` ### Шаг 2: Сборка программы Соберите бинарный файл `ztrr` стандартной командой Go. (Мы используем директорию `cmd/ztrr` как точку входа): ```bash go build -o ztrr ./cmd/ztrr ``` *Дополнительно: если хотите вшить версию и дату сборки (отображается по кнопке `?`), используйте эту команду:* ```bash VERSION="1.0.0" && BUILDDATE=$(date -u +%Y-%m-%d) && COMMIT=$(git rev-parse --short HEAD 2>/dev/null || echo "unknown") && go build -ldflags="-X 'github.com/veggiedefender/torrent-client/internal/version.Version=${VERSION}' -X 'github.com/veggiedefender/torrent-client/internal/version.BuildDate=${BUILDDATE}' -X 'github.com/veggiedefender/torrent-client/internal/version.GitCommit=${COMMIT}'" -o ztrr ./cmd/ztrr ``` ### Шаг 3: Глобальная установка (Опционально) Чтобы запускать торрент-клиент из любой папки, перенесите собранный файл в `/usr/local/bin` (или в любую папку из вашего `$PATH`): ```bash sudo mv ztrr /usr/local/bin/ ``` Теперь вы можете запустить клиент просто написав в терминале: ```bash ztrr ``` --- ## 🎮 Использование и Горячие клавиши После запуска программы перед вами откроется экран приветствия. Вы можете ввести путь к `.torrent` файлу вручную, либо нажать **`F`**, чтобы выбрать его через системный проводник. Также поддерживается вставка magnet-ссылки прямо в текстовое поле. ### Горячие клавиши (Доступны отовсюду): - `J` или `5` — **Журнал торрентов**: список ранее скачанных торрентов. - `L` или `6` — **Журнал логов**: подробные технические логи (помогают понять, почему торрент не качается). - `?` или `7` — **О программе**: версия, дата сборки и список всех хоткеев. - `Q` или `Ctrl+C` — Выйти из программы. ### Во время скачивания (Дашборд): - `1-4` / `Tab` — Переключение вкладок (Обзор, Пиры, Файлы, Трекеры). - `Пробел` или `S` — Пауза / Продолжить скачивание. - `O` — Закрыть текущий торрент и открыть окно нового. - `C` — Очистить всё. --- ## 📂 Где хранятся данные? Все служебные данные Ztorrent хранит в вашей домашней директории: - `~/.ztorrent/history.json` — база данных ваших загрузок (Журнал). - `~/.ztorrent/logs/` — markdown-файлы с логами для каждой сессии скачивания. ## Лицензия Ztorrent распространяется под лицензией MIT. Вы можете свободно изменять и распространять код.