______________________ _____ _____________ 1 2 3 ________/ ___/___/ /_ __(_)___/ __/__/ /______ ________ R │ │ │ _____/___ \ __/ __ \ ___ ___/ /_ _/ __/_ _ \__/ ___/ └──┼──┼──┤ ______/ / _/ / / /_/ / _/ __/ / /_ / __/_/ / │ │ │ /____/ /_/ /_/ /_/ /_/ \__/ \___/ /_/ 4 5 6
shifter
is a Python library for controlling transmission and uses the
version number of the newest version of transmission that it was written to
support (it will likely work for newer versions, but there is no guarantee).
shifter
has been written in 2.x syntax and will work for both Python2.x and Python3.x starting with Python2.5.
To install:
$ pip install shifter
or
$ easy_install shifter
For versions of Python3.x shifter
is converted using 2to3
. When
installing with pip
or using distribute
, shifter
will automatically
be converted to 3.x syntax. Otherwise you can run the 2to3
tool manually
with the following command:
$ 2to3 -f future -f reduce -f urllib -w shifter.py
shifter
was designed to be a more lightweight and consistent transmission
RPC library than what was currently available for Python. Instead of simply
using the keys/fields that transmission-rpc specifies which have a mix of
dashed separated words and mixed case words, shifter
tries to convert all
keys to a more python oriented: underscore separated words. This conversion is
done so that it is still possible to specify the fields/argument specified in
transmission-rpc, but if you do so your mileage may vary (probably want to
avoid it).
shifter
is designed to work with all versions of transmission, but for
renamed fields before and after the transmission version 1.60 (RPC v5) you
must specify the correct argument names (no automatic renames)
To use shifter
to control a default transmission-daemon
on
localhost
:
>>> client = shifter.Client()
>>> client.list()
which produces a list of dictionaries with the torrent information (keys are the fields: client.list_fields), and is synonymous to calling
>>> client.torrent.get(client.list_fields)
To use different connection information:
complete path
>>> client = shifter.Client(address="https://host:port/path")
default URL, but port change to 8080
>>> client = shifter.Client(port=8080)
default URL, but different host
>>> client = shifter.Client(host="github.com")
default URL, but use a username and password
>>> client = shifter.Client(username='username', password='password')
shifter
's RPC methods are namespaced into four sections:
Client: |
|
---|---|
Client.queue: |
|
Client.session: |
|
Client.torrent: |
|