Skip to content

Latest commit

 

History

History
130 lines (95 loc) · 6.95 KB

README.ru.md

File metadata and controls

130 lines (95 loc) · 6.95 KB

torrent-clean

en ru

NPM version Inline docs Known Vulnerabilities Maintainability Style Guide Test Coverage

Консольная утилита позволяющая удалять файлы, отсутствующие в указанном торренте. Полезно для случаев, когда после обновления торрента некоторые файлы были удалены.

Пререквизиты

  • Node.js 18 и новее

Установка

npm i -g @nikolay-borzov/torrent-clean

Использование

C:\Загрузкиак обоев - Природа\torrent-clean -t C:\Торренты\nature-pack.torrent

извлекает список файлов из nature-pack.torrent и сравнивает его со списком файлов директории C:\Загрузки\Пак обоев - Природа\. Файлы не указанные в nature-pack.torrent могут быт удалены.

У команды torrent-clean есть короткая форма - tc.

Аргументы командной строки

--torrent (или -t) - ID торрента (как описано в webtorrent api)

  • Magnet-ссылка (например magnet:?xt=urn:btih:d2474e86c95b19b8bcfdb92bc12c9d44667cfa36)
  • Хэш (например d2474e86c95b19b8bcfdb92bc12c9d44667cfa36)
  • http/https URL торрент файла
  • Путь к торрент файлу в файловой системе

--dir (или -d) - Путь к директории со скаченными файлами торрента

--version - Выводит версию приложения

Файлы предустановок

torrent-clean позволяет задать часть параметров через файл предустановок (.torrent-cleanrc, .torrent-cleanrc.json, .torrent-cleanrc.yaml, .torrent-cleanrc.yml). Поддерживаются множество файлов на пути к целевой директории - torrent-clean соберёт и скомбинирует все файлы предустановок вплоть до корневой директории. Чем ближе файл к целевой директории, тем выше его приоритет.

Параметры следующие:

  • ignore: string[] - Массив паттернов имён файлов (globs) (используется picomatch) или имён файлов, которые будут исключены и списка «лишних» файлов.
  • rememberLastTorrent: boolean - Включает функцию запоминания последнего указанного торрента для конкретной директории в параметре lastTorrent. Сохраняются только строковые значения. Параметр lastTorrent используется, когда не указан аргумент --torrent.

API

Функция cleanTorrentDirectory принимает объект параметров:

{
  torrentId: '6a9759bffd5c0af65319979fb7832189f4f3c35d',
  // Директория для очистки
  directoryPath: 'C:/Загрузки/Обои/Природа',
  // Не удалять файлы сразу. Вместо этого будет возвращена функция `deleteFiles`
  dryRun: true,
  // Объект предустановок с высшим приоритетом
  customConfig: { ignore: ['**/*\(правка\)*'] },
  // Вызывается после загрузки файло предустановок
  onConfigLoaded({ torrent }) { console.log(`Обработан ${torrent}`) }
}
import { cleanTorrentDirectory } from 'torrent-clean'

const { extraFiles } = await cleanTorrentDirectory({
  torrentId: 'C:/Торренты/nature wallpapers.torrent',
  directoryPath: 'C:/Загрузки/Обои/Природа',
})

console.log('Удалено', extraFiles)
import cleanTorrentDirectory from 'torrent-clean'

const { extraFiles, deleteFiles } = await cleanTorrentDirectory({
  torrentId: '6a9759bffd5c0af65319979fb7832189f4f3c35d',
  directoryPath: 'C:/Загрузки/Обои/Природа',
  dryRun: true,
  customConfig: { ignore: ['**/*(правка)*'] },
})

console.log('Удаляю', extraFiles)

await deleteFiles(extraFiles)

Известные проблемы

  • Торренты файлы, имя которых содержит некоторые Unicode символы (например 𝗚𝗪𝗔 1.txt), не могут быть обработаны.
  • Иногда обработка торрента указанного как хэш зависает. Лучше всего указывать локальный путь к торрент файлу.

Создано с помощью