torrent-clean
![ru](https://img.shields.io/badge/lang-ru-%23d52b1e)
![Test Coverage](https://api.codeclimate.com/v1/badges/093465c943260646aa40/test_coverage)
CLI utility deletes files not listed in the selected torrent. Useful when torrent is updated and some files have been removed.
Prerequisites
Install
npm i -g @nikolay-borzov/torrent-clean
Usage
C:\Downloads\NaturePack\torrent-clean -t C:\torrents\nature-pack.torrent
gets files' paths from nature-pack.torrent
and compares them with files from C:\Downloads\NaturePack\
. Then files not presented in nature-pack.torrent
can be deleted.
torrent-clean
has tc
alias.
Arguments
--torrent
(or -t
) - Torrent ID (as described in webtorrent api)
- Magnet URI (e.g.
magnet:?xt=urn:btih:d2474e86c95b19b8bcfdb92bc12c9d44667cfa36
) - Info Hash (e.g.
d2474e86c95b19b8bcfdb92bc12c9d44667cfa36
) - http/https URL to a torrent file
- Filesystem path to a torrent file
--dir
(or -d
) - Path to directory with downloaded files
--version
- Outputs the app version
Config files
torrent-clean
allows specifying some parameters via config file (.torrent-cleanrc
, .torrent-cleanrc.json
, .torrent-cleanrc.yaml
, .torrent-cleanrc.yml
). There might be many files - torrent-clean
will collect and merge all files up to root directory. The closer config to the directory is, the higher its priority.
Parameter are:
ignore: string[]
- an array of globs (picomatch is used) or filenames that will be excluded from the list of extra files.rememberLastTorrent: boolean
- Enable remembering last specified torrent ID for specified directory to lastTorrent
config parameter. Only string values are saved. lastTorrent
is used when --torrent
argument is not set.
API
cleanTorrentDirectory
accepts options object:
{
torrentId: '6a9759bffd5c0af65319979fb7832189f4f3c35d',
directoryPath: 'C:/Downloads/wallpapers/nature',
dryRun: true,
customConfig: { ignore: ['**/*\(edited\)*'] },
onConfigLoaded({ torrent }) { console.log(`Parsed ${torrent}`) }
}
import { cleanTorrentDirectory } from 'torrent-clean'
const { extraFiles } = await cleanTorrentDirectory({
torrentId: 'C:/torrents/nature wallpapers.torrent',
directoryPath: 'C:/Downloads/wallpapers/nature',
})
console.log('Removed', extraFiles)
import cleanTorrentDirectory from 'torrent-clean'
const { extraFiles, deleteFiles } = await cleanTorrentDirectory({
torrentId: '6a9759bffd5c0af65319979fb7832189f4f3c35d',
directoryPath: 'C:/Downloads/wallpapers/nature',
dryRun: true,
customConfig: { ignore: ['**/*(edited)*'] },
})
console.log('Removing', extraFiles)
await deleteFiles(extraFiles)
Known issues
- Torrent files with names containing unicode characters (e.g. 𝗚𝗪𝗔 1.txt) cannot be parsed correctly.
- Parsing torrent by hash can sometimes hang. It's better to pass path to torrent file.
Built with