dsander / transmission-client

A Transmission RPC Client

This URL has Read+Write access

Dominik Sander (author)
Tue Oct 27 08:11:33 -0700 2009
commit  ad7e2aff2fc2dd4f6b2b03a9220e0721ac994f4f
tree    7db24c824d6977d47cc925ca01da82c640b55569
parent  2eb064a2921924c64674c29401f5dbbe3c88348c
name age message
file .document Thu Oct 22 09:56:04 -0700 2009 Initial commit to transmission-rpc. [Dominik Sander]
file .gitignore Fri Oct 23 07:49:19 -0700 2009 Preparing for github push [Dominik Sander]
file LICENSE Thu Oct 22 09:56:04 -0700 2009 Initial commit to transmission-rpc. [Dominik Sander]
file README.markdown Loading commit data...
file README.rdoc
file Rakefile Fri Oct 23 07:49:19 -0700 2009 Preparing for github push [Dominik Sander]
file VERSION Sun Oct 25 22:04:38 -0700 2009 added a fix for ruby1.8.x [Matt Aimonetti]
directory lib/
directory test/ Thu Oct 22 09:56:04 -0700 2009 Initial commit to transmission-rpc. [Dominik Sander]
README.rdoc

# transmission-client: A Transmission RPC Client

The goal is to support all requests described in the Transmission [RPC Specifications](trac.transmissionbt.com/browser/trunk/doc/rpc-spec.txt).

## Installing You need to have 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 transmission-client

If you want to use EventMachine (optional) you need to install the eventmachine gem and igrigorik’s em-http-request:

        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)
        t.torrents.each do |torrent|
          puts torrent.name
        end

To use the EventMachine driven interface:

        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.