Class: Trans::Api::Connect

Inherits:
Object
  • Object
show all
Defined in:
lib/trans-api/connect.rb

Constant Summary collapse

METHODS =
{
  session_get: {method: "session-get", tag: 0},
  session_set: {method: "session-set", tag: 1},
  session_stats: {method: "session-stats", tag: 2},
  session_close: {method: "session-close", tag: 3},
  torrent_get: {method: "torrent-get", tag: 4},
  torrent_set: {method: "torrent-set", tag: 5},
  torrent_start: {method: "torrent-start", tag: 6},
  torrent_start_now: {method: "torrent-start-now", tag: 7},
  torrent_stop: {method: "torrent-stop", tag: 8},
  torrent_add: {method: "torrent-add", tag: 9},
  torrent_remove: {method: "torrent-remove", tag: 10},
  torrent_verify: {method: "torrent-verify", tag: 11},
  torrent_reannounce: {method: "torrent-reannounce", tag: 12},
  torrent_set_location: {method: "torrent-set-location", tag: 13},
  blocklist_update: {method: "blocklist-update", tag: 14},
  port_test: {method: "port-test", tag: 15},
  queue_move_top: {method: "queue-move-top", tag: 16},
  queue_move_up: {method: "queue-move-up", tag: 17},
  queue_move_down: {method: "queue-move-down", tag: 18},
  queue_move_bottom: {method: "queue-move-bottom", tag: 19}
}

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Connect

Returns a new instance of Connect.



39
40
41
42
43
44
45
46
# File 'lib/trans-api/connect.rb', line 39

def initialize(options={})
  if options.empty?
    @conn = Client::DEFAULT
  elsif !options.nil?
    @conn = options
  end
  self.reset_conn
end

Instance Method Details

#blocklist_updateObject



141
142
143
144
145
146
147
# File 'lib/trans-api/connect.rb', line 141

def blocklist_update
  tm = @conn[:timeout]
  @conn[:timeout] = (@conn[:timeout] + 5) * 3
  arg = self.get_method(:blocklist_update) {|b| b.gsub("-","_")}
  @conn[:timeout] = tm
  arg
end

#port_testObject



149
150
151
# File 'lib/trans-api/connect.rb', line 149

def port_test
  self.get_method(:port_test) {|b| b.gsub("-","_")}
end

#queue_move_bottom(ids = []) ⇒ Object



172
173
174
175
176
# File 'lib/trans-api/connect.rb', line 172

def queue_move_bottom(ids=[])
  arguments = {}
  arguments[:ids] = ids unless ids.empty?
  self.get_method(:queue_move_bottom, arguments) {|b| b.gsub("-","_")}
end

#queue_move_down(ids = []) ⇒ Object



166
167
168
169
170
# File 'lib/trans-api/connect.rb', line 166

def queue_move_down(ids=[])
  arguments = {}
  arguments[:ids] = ids unless ids.empty?
  self.get_method(:queue_move_down, arguments) {|b| b.gsub("-","_")}
end

#queue_move_top(ids = []) ⇒ Object



154
155
156
157
158
# File 'lib/trans-api/connect.rb', line 154

def queue_move_top(ids=[])
  arguments = {}
  arguments[:ids] = ids unless ids.empty?
  self.get_method(:queue_move_top, arguments) {|b| b.gsub("-","_")}
end

#queue_move_up(ids = []) ⇒ Object



160
161
162
163
164
# File 'lib/trans-api/connect.rb', line 160

def queue_move_up(ids=[])
  arguments = {}
  arguments[:ids] = ids unless ids.empty?
  self.get_method(:queue_move_up, arguments) {|b| b.gsub("-","_")}
end

#reset_connObject



49
50
51
52
53
54
55
56
57
# File 'lib/trans-api/connect.rb', line 49

def reset_conn
  @conn[:headers] = {}
  # authentication
  secret = ::Base64.encode64("#{@conn[:user]}:#{@conn[:pass]}")
  @conn[:headers]["Authorization"]= "Basic #{secret}" if @conn.include?(:user) && @conn.include?(:pass)
  # placeholder
  @conn[:headers]["X-Transmission-Session-Id"] = ""
  self
end

#session_closeObject



74
75
76
# File 'lib/trans-api/connect.rb', line 74

def session_close
  self.get_method(:session_close)
end

#session_getObject

handles



62
63
64
# File 'lib/trans-api/connect.rb', line 62

def session_get
  self.get_method(:session_get) {|b| b.gsub("-","_")}
end

#session_set(arguments = {}) ⇒ Object



70
71
72
# File 'lib/trans-api/connect.rb', line 70

def session_set(arguments={})
  self.get_method(:session_set, arguments)
end

#session_statsObject



66
67
68
# File 'lib/trans-api/connect.rb', line 66

def session_stats
  self.get_method(:session_stats) {|b| b.gsub("-","_")}
end

#torrent_add(arguments = {}) ⇒ Object



112
113
114
115
116
117
# File 'lib/trans-api/connect.rb', line 112

def torrent_add(arguments={})
  args = self.get_method(:torrent_add, arguments) {|b| b.gsub("-","_")}
  # omiting BUG: https://trac.transmissionbt.com/ticket/5614
  return args[:torrent_duplicate] if args.include?(:torrent_duplicate)
  args[:torrent_added]
end

#torrent_get(fields = [:id, :name, :status], ids = []) ⇒ Object



78
79
80
81
82
83
# File 'lib/trans-api/connect.rb', line 78

def torrent_get(fields = [:id, :name, :status], ids = [])
  arguments = { fields: fields }
  arguments[:ids] = ids unless ids.empty?
  args = self.get_method(:torrent_get, arguments)
  args[:torrents]
end

#torrent_reannounce(ids = []) ⇒ Object



130
131
132
133
134
# File 'lib/trans-api/connect.rb', line 130

def torrent_reannounce(ids=[])
  arguments = {}
  arguments[:ids] = ids unless ids.empty?
  self.get_method(:torrent_reannounce, arguments)
end

#torrent_remove(arguments = {}, ids = []) ⇒ Object



119
120
121
122
# File 'lib/trans-api/connect.rb', line 119

def torrent_remove(arguments={}, ids=[])
  arguments[:ids] = ids unless ids.empty?
  self.get_method(:torrent_remove, arguments) {|b| b.gsub("-","_")}
end

#torrent_set(arguments = {}, ids = []) ⇒ Object



85
86
87
88
89
# File 'lib/trans-api/connect.rb', line 85

def torrent_set(arguments={}, ids = [])
  arguments[:ids] = ids unless ids.empty?
  args = self.get_method(:torrent_set, arguments)
  args[:torrents]
end

#torrent_set_location(arguments = {}, ids = []) ⇒ Object



136
137
138
139
# File 'lib/trans-api/connect.rb', line 136

def torrent_set_location(arguments={}, ids=[])
  arguments[:ids] = ids unless ids.empty?
  self.get_method(:torrent_set_location, arguments) {|b| b.gsub("-","_")}
end

#torrent_start(ids = []) ⇒ Object



91
92
93
94
95
96
# File 'lib/trans-api/connect.rb', line 91

def torrent_start(ids = [])
  arguments = {}
  arguments[:ids] = ids unless ids.empty?
  args = self.get_method(:torrent_start, arguments)
  args[:torrents]
end

#torrent_start_now(ids = []) ⇒ Object



98
99
100
101
102
103
# File 'lib/trans-api/connect.rb', line 98

def torrent_start_now(ids = [])
  arguments = {}
  arguments[:ids] = ids unless ids.empty?
  args = self.get_method(:torrent_start_now, arguments)
  args[:torrents]
end

#torrent_stop(ids = []) ⇒ Object



105
106
107
108
109
110
# File 'lib/trans-api/connect.rb', line 105

def torrent_stop(ids = [])
  arguments = {}
  arguments[:ids] = ids unless ids.empty?
  args = self.get_method(:torrent_stop, arguments)
  args[:torrents]
end

#torrent_verify(ids = []) ⇒ Object



124
125
126
127
128
# File 'lib/trans-api/connect.rb', line 124

def torrent_verify(ids = [])
  arguments = {}
  arguments[:ids] = ids unless ids.empty?
  self.get_method(:torrent_verify, arguments)
end