Transmission RPC Ruby Extended
This is a fork of transmission-rpc-ruby with some shortcut methods added and revised codebase.
Documentation for the original gem can be found in the upstream repository.
Installation
gem install transmission-rpc-ruby-ext
Then require it
require 'transmission'
If both transmission-rpc-ruby
and transmission-rpc-ruby-ext
gems are installed, specify the gem to require to avoid namespace conflict.
gem 'transmission-rpc-ruby-ext'
require 'transmission'
Extensions
Transmission selectors
All torrents
Transmission.all
All finished torrents
Transmission.finished
All completed or incomplete torrents
Transmission.completed
Transmission.incomplete
All torrents based on status
Transmission.paused # status 0
Transmission.queued # status 3
Transmission.downloading # status 4
Transmission.seeding # status 6
All torrents with error
Transmission.errors
All hashes of all torrents
Transmission.hashes
Find torrents by name, hash, id or tracker
Transmission.find_by_name('ubuntu')
Transmission.find_by_hash('9f9165d9a281a9b8e782cd5176bbcc8256fd1871')
Transmission.find_by_id(1)
Transmission.find_by_tracker('torrent.ubuntu.com')
Torrent status
t = Transmission.all.first
t.paused?
# => false
t.queued?
# => false
t.downloading?
# => true
t.seeding?
# => false
t.finished?
# => false
t.completed?
# => false
t.incomplete?
# => false
t.error?
# => false
Torrent attributes
Basic attributes
t = Transmission.all.first
t.name
# => "ubuntu-16.04.1-desktop-amd64.iso"
t.path
# => "/Users/epistrephein/Downloads/ubuntu-16.04-desktop-amd64.iso"
t.id
# => 1
t.hash
# => "9f9165d9a281a9b8e782cd5176bbcc8256fd1871"
Size
t.length
# => 1513308160
t.valid
# => 582696960
t.percent_downloaded
# => 0.39
t.percent_uploaded
# => 0.0
t.percent_ratio
# => nil
Speed
t.speed_download
# => 14477000
t.speed_upload
# => 0
Ratio & ETA
t.ratio
# => 0.0
t.eta
# => 85
Files and folders
t.file?
# => true
t.folder?
# => false
t.files
# => ["/Users/epistrephein/Downloads/ubuntu-16.04-desktop-amd64.iso"]
t.content
# => ["ubuntu-16.04.1-desktop-amd64.iso"]
t.biggest
# => ["ubuntu-16.04.1-desktop-amd64.iso", 1513308160]
t.smallest
# => ["ubuntu-16.04.1-desktop-amd64.iso", 1513308160]
Peers
t.peers
# => 11
t.peers_seeding
# => 9
t.peers_leeching
# => 0
Errors
t.error
# => nil
Magnet link
t.magnet
# => "magnet:?xt=urn:btih:9f9165d9a281a9b8e782cd5176bbcc8256fd1871&dn=ubuntu-16.04.1-desktop-amd64.iso&tr=http%3A%2F%2Ftorrent.ubuntu.com%3A6969%2Fannounce&tr=http%3A%2F%2Fipv6.torrent.ubuntu.com%3A6969%2Fannounce"
Trackers
t.trackers
# => ["torrent.ubuntu.com", "ipv6.torrent.ubuntu.com"]
Torrent prettified attributes
t.pretty_length
# => "1.51GB"
t.pretty_valid
# => "582.7MB"
t.pretty_eta
# => "1 minutes, 25 seconds"
Torrent actions
t.reload!
t.remove!
t.remove_data!
Contributing
Contributions are welcome and encouraged. Feel free to open an issue or submit a pull request.