Руководство по использованию
Это руководство предоставляет подробную информацию о всех функциях и методах использования Magneto.
Базовое использование
Преобразование одного файла
magneto file.torrentПреобразование всех файлов в папке
magneto folder/Указание выходного файла
magneto folder/ -o output.txtФорматы вывода
Magneto поддерживает три формата вывода:
1. Полный формат (по умолчанию)
magneto folder/ -f fullПример вывода:
================================================================================
Torrent to Magnet Link Conversion Results
================================================================================
File: example.torrent
Magnet Link: magnet:?xt=urn:btih:ABC123...&dn=Example
Info Hash: ABC123...
Name: Example
Trackers: 3 found
--------------------------------------------------------------------------------
================================================================================
Magnet Link List (Links Only)
================================================================================
magnet:?xt=urn:btih:ABC123...&dn=Example2. Только ссылки
magneto folder/ -f links_onlyПример вывода:
magnet:?xt=urn:btih:ABC123...&dn=Example
magnet:?xt=urn:btih:DEF456...&dn=Another3. JSON формат
magneto folder/ -f jsonПример вывода:
[
{
"file": "example.torrent",
"magnet": "magnet:?xt=urn:btih:ABC123...&dn=Example",
"info_hash": "ABC123...",
"name": "Example",
"trackers": [
"http://tracker1.example.com",
"http://tracker2.example.com"
]
}
]Опции поиска
Рекурсивный поиск
Рекурсивный поиск торрент-файлов в подкаталогах:
magneto folder/ -rПоиск с учетом регистра
По умолчанию поиск не учитывает регистр (будут найдены как .torrent, так и .TORRENT). Если нужен поиск с учетом регистра:
magneto folder/ --case-sensitiveОпции преобразования
Включение информации о трекерах
По умолчанию сгенерированные магнитные ссылки не включают информацию о трекерах. Чтобы включить:
magneto folder/ --include-trackersСгенерированные магнитные ссылки будут включать все адреса трекеров:
magnet:?xt=urn:btih:ABC123...&dn=Example&tr=http://tracker1.com&tr=http://tracker2.comОпции отображения
Режим подробного вывода
Отображение подробной информации о обработке:
magneto folder/ -vВывод включает:
- Info Hash для каждого файла
- Имя файла
- Количество трекеров
Тихий режим
Показывать только сообщения об ошибках:
magneto folder/ -qОтключить цветной вывод
magneto folder/ --no-colorsМетоды вывода
Сохранение в файл (по умолчанию)
magneto folder/ -o output.txtРезультаты будут сохранены в указанный файл. Если -o не указан, по умолчанию сохраняется в magnet_links.txt.
Вывод в стандартный вывод
magneto folder/ --stdoutРезультаты будут выведены непосредственно в терминал без сохранения в файл.
В сочетании с опциями формата:
# Вывести только ссылки в терминал
magneto folder/ --stdout -f links_only
# Вывести JSON в терминал
magneto folder/ --stdout -f jsonПрактические примеры
Пример 1: Пакетное преобразование и сохранение как JSON
magneto downloads/ -r -f json -o results.jsonПример 2: Быстро получить все магнитные ссылки
magneto folder/ --stdout -f links_only -qПример 3: Преобразование в подробном режиме с трекерами
magneto folder/ -v --include-trackers -o output.txtПример 4: Рекурсивный поиск и вывод в файл
magneto ~/Downloads/ -r -f full -o ~/magnets.txtИспользование в коде
Помимо инструмента командной строки, Magneto также предоставляет Python API, который можно использовать непосредственно в коде.
Быстрый старт
Использование функции torrent_to_magnet — это самый простой способ интеграции:
from magneto import torrent_to_magnet
# Преобразование из пути к файлу
magnet, info_hash, metadata = torrent_to_magnet("path/to/file.torrent")
print(f"Магнитная ссылка: {magnet}")
print(f"Info Hash: {info_hash}")
print(f"Имя файла: {metadata['name']}")
# Преобразование из URL
magnet, info_hash, metadata = torrent_to_magnet("https://example.com/file.torrent")
# Включить информацию о трекерах
magnet, info_hash, metadata = torrent_to_magnet(
"file.torrent",
include_trackers=True
)Пример пакетной обработки
from pathlib import Path
from magneto import torrent_to_magnet
def batch_convert(folder_path: str):
"""Пакетное преобразование всех торрент-файлов в папке"""
folder = Path(folder_path)
results = []
for torrent_file in folder.glob("*.torrent"):
try:
magnet, info_hash, metadata = torrent_to_magnet(torrent_file)
results.append({
"file": str(torrent_file),
"magnet": magnet,
"info_hash": info_hash,
"name": metadata["name"]
})
print(f"✓ {torrent_file.name}")
except Exception as e:
print(f"✗ {torrent_file.name}: {e}")
return results
# Пример использования
results = batch_convert("downloads/")Пример обработки URL
from magneto import torrent_to_magnet
def convert_from_url(url: str):
"""Загрузить и преобразовать торрент-файл из URL"""
try:
magnet, info_hash, metadata = torrent_to_magnet(url, include_trackers=True)
print(f"Магнитная ссылка: {magnet}")
print(f"Источник: {metadata.get('source_url', 'N/A')}")
return magnet
except IOError as e:
print(f"Ошибка загрузки: {e}")
except ValueError as e:
print(f"Ошибка формата файла: {e}")
# Пример использования
convert_from_url("https://example.com/torrent.torrent")Обработка ошибок
from magneto import torrent_to_magnet
try:
magnet, info_hash, metadata = torrent_to_magnet("file.torrent")
except IOError as e:
print(f"Ошибка чтения файла: {e}")
except ValueError as e:
print(f"Ошибка формата файла: {e}")
except ImportError as e:
print(f"Отсутствует зависимость: {e}")Описание возвращаемых значений
Функция torrent_to_magnet возвращает кортеж из трех элементов:
- magnet_link (str): Сгенерированная магнитная ссылка
- info_hash (str): Info Hash торрента (шестнадцатеричная строка, верхний регистр)
- metadata (Dict): Словарь метаданных, содержащий:
name: Имя файлаtrackers: Список трекеров (включается даже еслиinclude_trackers=False)info_hash: Info Hashfile_size: Размер файла (в байтах)source_url: Исходный URL, если входные данные — URL
Дополнительные возможности API
Для более продвинутых функций (таких как пользовательские форматы вывода, пакетная обработка и т.д.) см. Справочник API.
Справочник аргументов командной строки
Позиционные аргументы
input- Входной торрент-файл или путь к папке, содержащей торрент-файлы
Опции вывода
-o, --output FILE- Указать путь к выходному файлу (по умолчанию:magnet_links.txtво входной директории)-f, --format {full,links_only,json}- Формат вывода (по умолчанию: full)--stdout- Вывести результаты в stdout вместо сохранения в файл
Опции поиска
-r, --recursive- Рекурсивный поиск торрент-файлов в подкаталогах--case-sensitive- Поиск расширений файлов с учетом регистра
Опции преобразования
--include-trackers- Включить информацию о трекерах в магнитные ссылки
Опции отображения
-v, --verbose- Показать подробную информацию о выводе-q, --quiet- Тихий режим, показывать только сообщения об ошибках--no-colors- Отключить цветной вывод
Другие опции
-h, --help- Показать справочную информацию и выйти--version- Показать информацию о версии и выйти
Советы по использованию
1. Операции с конвейером
Передача вывода другим командам:
magneto folder/ --stdout -f links_only | grep "ABC123"2. Пакетная обработка больших папок
Для папок, содержащих много файлов, рекомендуется тихий режим:
magneto large_folder/ -r -q -f links_only -o results.txt3. Использование со скриптами
Использование формата JSON упрощает разбор в скриптах:
magneto folder/ -f json -o results.json
# Затем разобрать JSON с помощью Python/Node.js и т.д.Обработка ошибок
Распространенные ошибки
Файл не существует
Error: Path does not exist: /path/to/fileОшибка формата файла
✗ example.torrent: Unable to parse torrent fileОшибка прав доступа
Error: Unable to read file /path/to/file: Permission denied
Статистика ошибок
После завершения обработки отображается статистика:
================================================================================
Processing complete: 10 file(s) total
Success: 8
Failed: 2
================================================================================Следующие шаги
- Справочник API - Узнайте, как использовать Magneto в коде
- Начало работы - Повторите базовое использование