Class: Transmission::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/transmission-client/client.rb

Instance Method Summary collapse

Constructor Details

#initialize(host = 'localhost', port = 9091, username = "", password = "") ⇒ Client

Returns a new instance of Client.



3
4
5
# File 'lib/transmission-client/client.rb', line 3

def initialize(host='localhost',port=9091, username = "", password = "")
  Connection.instance.init(host, port, username, password)
end

Instance Method Details

#add_torrent(a, &cb) ⇒ Object



31
32
33
34
35
36
# File 'lib/transmission-client/client.rb', line 31

def add_torrent(a, &cb)
  if a['filename'].nil? && a['metainfo'].nil?
    raise "You need to provide either a 'filename' or 'metainfo'."
  end
  Connection.instance.send('torrent-add', a, &cb)
end

#add_torrent_by_data(data, &cb) ⇒ Object



42
43
44
# File 'lib/transmission-client/client.rb', line 42

def add_torrent_by_data(data, &cb)
  add_torrent({'metainfo' => data}, &cb)
end

#add_torrent_by_file(filename, &cb) ⇒ Object



38
39
40
# File 'lib/transmission-client/client.rb', line 38

def add_torrent_by_file(filename, &cb)
  add_torrent({'filename' => filename}, &cb)
end

#remove(id, delete_data = false, &cb) ⇒ Object



23
24
25
# File 'lib/transmission-client/client.rb', line 23

def remove(id, delete_data = false, &cb)
  Connection.instance.send('torrent-remove', {'ids' => id.class == Array ? id : [id], 'delete-local-data' => delete_data }, &cb)
end

#remove_all(delete_data = false, &cb) ⇒ Object



27
28
29
# File 'lib/transmission-client/client.rb', line 27

def remove_all(delete_data = false, &cb)
  Connection.instance.send('torrent-remove', {'delete-local-data' => delete_data }, &cb)
end

#session(&cb) ⇒ Object



46
47
48
49
50
51
52
# File 'lib/transmission-client/client.rb', line 46

def session &cb
  if cb
    Connection.instance.request('session-get') { |resp| cb.call Session.new resp }
  else
    Session.new Connection.instance.request('session-get')
  end
end

#start(id, &cb) ⇒ Object



11
12
13
# File 'lib/transmission-client/client.rb', line 11

def start(id, &cb)
  Connection.instance.send('torrent-start', {'ids' => id.class == Array ? id : [id]}, &cb)
end

#start_all(&cb) ⇒ Object



7
8
9
# File 'lib/transmission-client/client.rb', line 7

def start_all &cb
  Connection.instance.send('torrent-start', &cb)
end

#stop(id, &cb) ⇒ Object



15
16
17
# File 'lib/transmission-client/client.rb', line 15

def stop(id, &cb)
  Connection.instance.send('torrent-stop', {'ids' => id.class == Array ? id : [id]}, &cb)
end

#stop_all(&cb) ⇒ Object



19
20
21
# File 'lib/transmission-client/client.rb', line 19

def stop_all &cb
  Connection.instance.send('torrent-stop', &cb)
end

#torrents(fields = nil, &cb) ⇒ Object



54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/transmission-client/client.rb', line 54

def torrents(fields = nil, &cb)
 torrs = []
 if cb
	  Connection.instance.request('torrent-get', {'fields' => fields ? fields : Transmission::Torrent::ATTRIBUTES}) { |resp| 
	    resp['torrents'].each do |t|
	      torrs << Torrent.new(t)
    end
    cb.call torrs
  }
 else
	  data = Connection.instance.request('torrent-get', {'fields' => fields ? fields : Transmission::Torrent::ATTRIBUTES})
	  data['torrents'].each do |t|
	    torrs << Torrent.new(t)
  end
  torrs
 end
end