trpc
A pleasant frontend for transmission.
This project was only started recently and is very much an alpha.
Backwards incompatible changes might be made, but in general there should be
no bugs on the master branch. I will sometimes push a chain of commits to master
where it may be broken in the middle but should be fine at the final master
commit.
The intention is to provide a more user friendly interface compared to
transmission-remote
.
Here are some examples of things you can do easily that would require at least
some scripting with transmission-remote alone:
# Stop all incomplete torrents
trpc stop -i
# Start all torrents that live in a specific download dir
trpc start ~/torrent/foo/*
Features
Commands
add
: add torrents by file or URL (-p to add paused)
errors
: show torrents that have errors
list
: list torrents
move
: move torrents to another location
rename
: Rename a torrent path or file
rm
: remove torrents (--nuke to delete the data as well as the torrent)
start
: start torrents (--now to jump queue)
stop
: stop torrents
verify
: verify (hash check) torrents
version
: show version
which
: show which torrents (and file ID) given file(s) belong to.
Filters
Most commands above except for add
, version
, rename
and which
accept
filter arguments to limit the torrents acted upon (or displayed in the case of
list
):
-i, --incomplete
: Include only incomplete torrents
-a, --active
: Include only active torrents (downloading or uploading)
-t, --tracker
: Match on tracker short name
-e, --error
: Match on a specific error string
-d, --download-dir
: Match on a download directory.
The above are all shorthand for a more powerful filter language:
# equivalent of trpc list -i
trpc list -f 'incomplete'
trpc list -f '!complete'
# equivalent of trpc list -a
trpc list -f 'up > 0 || down > 0'
# equivalent of trpc list -t foo
trpc list -f 'tracker == "foo"'
# equivalent of trpc list -e 'unregistered torrent'
trpc list -f 'error == "unregistered torrent"
# equivalent of trpc list -d '/home/chris/images'
trpc list -f 'downloadDir == "/home/chris/images"'
# multiple expressions can be defined:
# List incomplete torrents larger than 1 GiB
trpc list -i -f 'size > 1 GiB'
trpc list -f '!complete' -f 'size > 1 GiB'
trpc list -f 'incomplete && size > 1 GiB'
Sorting
- by size, name, id, ratio, age, have (amount of bytes downloaded), upload, progress
# Sort by size descending
trpc list --sort size -r
Torrents can be selected by ID or filename
Unlike transmission-remote
, you can refer to a torrent by its filename.
This allows easy shell globbing. Example:
# Pause all incomplete torrents in ~/torrents/recent
$ trpc stop --incomplete ~/torrent/recent/*
Planned upcoming features (near future)
More commands
limit
: Set global/torrent upload/download rate limits
files
: List files within torrents
get
: set specified files to be downloaded
noget
: set specified files to not be downloaded
info
: Show detailed torrent info
sessioninfo
: Show session information
watch
: Show a progress bar for incomplete active torrents
Planned features (possible, distant future)
Installation
go install github.com/shric/trpc/cmd/trpc
More usage examples
trpc |
transmission-remote analogue (if present) |
Description |
trpc -h |
transmission-remote -h |
Show help |
trpc list |
transmission-remote -l |
List all torrents |
trpc list -i |
|
List all incomplete torrents |
trpc rm 123 456 |
transmission-remote -t 123,456 -r |
Remove torrents with IDs 123 and 456 |
trpc rm --nuke 123 |
transmission-remote -t 123 -rad |
Remove torrent + data with ID 123 |
trpc add foo.torrent |
transmission-remote -a foo.torrent |
Add foo.torrent (can be filename or URL) |
trpc add -p foo.torrent |
transmission-remote -a --start-paused foo.torrent |
Add foo.torrent in paused state |
trpc rm -i --force-all |
|
Remove all incomplete torrents |
trpc start 123 |
transmission-remote -t 123 -s |
Start torrent 123 |
trpc start --now 123 |
|
Start torrent 123 (bypass queue) |
trpc stop 123 |
transmission-remote -t 123 -S |
Stop torrent 123 |
trpc list * |
|
List all running torrents in the current dir |
trpc which filename.iso |
|
Identify which torrent filename.iso belongs to |