85 lines
5.8 KiB
Markdown
85 lines
5.8 KiB
Markdown
# ZTORRENT ⚡
|
||
|
||
**Ztorrent** — это минималистичный и невероятно быстрый консольный (TUI) BitTorrent-клиент, написанный на Go.
|
||
|
||
Он работает прямо в вашем терминале, поддерживает `.torrent` файлы и **magnet-ссылки**, умеет искать пиров через собственный встроенный **DHT-движок** и сохраняет историю всех ваших загрузок и логов.
|
||
|
||
 *(Пример интерфейса — скриншот будет добавлен позже)*
|
||
|
||
---
|
||
|
||
## 🔥 Ключевые возможности
|
||
|
||
- 🚀 **Полноценный 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. Вы можете свободно изменять и распространять код.
|