From 7cf20e00c65e6fea83911446c126d7c8f0232042 Mon Sep 17 00:00:00 2001 From: itexpert228 <67105314+fdaser1337@users.noreply.github.com> Date: Thu, 16 Jul 2026 16:11:48 +0300 Subject: [PATCH] docs: update README with Russian translation and install guide --- README.md | 97 +++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 76 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index b7ca88c..2610bbf 100644 --- a/README.md +++ b/README.md @@ -1,30 +1,85 @@ -# Ztorrent +# ZTORRENT ⚡ -Minimal BitTorrent client skeleton in Go. +**Ztorrent** — это минималистичный и невероятно быстрый консольный (TUI) BitTorrent-клиент, написанный на Go. -## Run +Он работает прямо в вашем терминале, поддерживает `.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 -go run ./cmd/torrent-client +git clone https://github.com/твоё_имя/ztorrent.git +cd ztorrent ``` -App starts a native desktop GUI window. - -## Current features - -- Parse `.torrent` metadata and piece hashes -- Compute `info_hash` from raw `info` bytes (spec-compatible) -- Single-file and multi-file torrents -- Send tracker announce requests via HTTP(S) and UDP trackers -- Parse compact peer list -- Multi-tracker fallback (including public trackers) -- Native GUI for loading torrents by path and browsing files -- Show tracker states, discovered peers, and torrent file list in the GUI - -## Build (macOS/Linux/Windows) - +### Шаг 2: Сборка программы +Соберите бинарный файл `ztrr` стандартной командой Go. (Мы используем директорию `cmd/ztrr` как точку входа): ```bash -./scripts/build-all.sh +go build -o ztrr ./cmd/ztrr ``` -Note: for non-host targets with native GUI, cross C toolchains are required; unsupported targets are skipped. +*Дополнительно: если хотите вшить версию и дату сборки (отображается по кнопке `?`), используйте эту команду:* +```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. Вы можете свободно изменять и распространять код.