Module: Transmission::RPC::Client
- Defined in:
- lib/transmission-rpc/client.rb
Overview
This communicates with Transmission’s RPC server. Transmission’s RPC is just an HTTP server with a JSON API It implements part of the [RPC 1.7.X spec](trac.transmissionbt.com/browser/branches/1.7x/doc/rpc-spec.txt)
Constant Summary collapse
- API_VERSION =
'1.7'
Class Method Summary collapse
-
.connected? ⇒ Boolean
Checks if we’re connected to the Trasmission Daemon.
-
.request(method, arguments = {}, ids = []) ⇒ Object
Sends out a request to Transmission’s RPC server If you’re curious about the formatting, [read this](trac.transmissionbt.com/browser/branches/1.7x/doc/rpc-spec.txt).
Class Method Details
.connected? ⇒ Boolean
Checks if we’re connected to the Trasmission Daemon. If you’re having problems, make sure you have the Transmission Daemon installed and then try running transmission-daemon -f in your shell
10 11 12 13 14 15 16 17 |
# File 'lib/transmission-rpc/client.rb', line 10 def self.connected? begin request("session-get") true rescue false end end |
.request(method, arguments = {}, ids = []) ⇒ Object
Sends out a request to Transmission’s RPC server If you’re curious about the formatting, [read this](trac.transmissionbt.com/browser/branches/1.7x/doc/rpc-spec.txt)
21 22 23 24 25 26 27 28 29 |
# File 'lib/transmission-rpc/client.rb', line 21 def self.request(method, arguments = {}, ids = []) arguments = self.add_ids(arguments, ids) if ids.present? begin @response = RestClient.post(self.url, { :method => method, :arguments => arguments }.to_json, :x_transmission_session_id => self.session_id) JSON.parse(@response.body) rescue puts "Couldn't connect to Transmission. Is Transmission running at http://#{Transmission.configuration.ip}:#{Transmission.configuration.port}?" end end |