Ztorrent/README.md

85 lines
5.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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. Вы можете свободно изменять и распространять код.