transmission-client: A Transmission RPC Client

The goal is to support all requests described in the Transmission RPC Specifications.

Installing

You need to have http://gemcutter.org in you gem sources. To add it you can execute either

sudo gem install gemcutter
sudo gem tumble

or

sudo gem source -a http://gemcutter.org

To install transmission-client:

sudo gem install hornairs-transmission-client

If you want to use EventMachine (optional) you need to install the eventmachine gem and igrigorik's em-http-request. Right now this is a bad idea because it doesn't support authentication for the transmission-rpc or a few of the request types:

sudo gem install eventmachine
sudo gem install em-http-request

Usage

Get a list of torrents and print its file names:

require 'transmission-client'
t = Transmission::Client.new('127.0.0.1', 9091, 'transmission', 'secretpassword')
t.torrents.each do |torrent|
  puts torrent.name
end

Currently the event EventMachine driven interface doesn't support all the goodness the regular one does.

require 'eventmachine'
require 'transmission-client'

EventMachine.run do
  t = Transmission::Client.new
  EM.add_periodic_timer(1) do
    t.torrents do |torrents|
      torrents.each do |tor|
        puts tor.percentDone
      end
    end
  end
end

RDoc is still to be written, at the meantime have a look at the code to find out which methods are supported.