module BtCommunicator
Attributes
opts[R]
Public Instance Methods
auth()
click to toggle source
# File lib/btsync/communicator.rb, line 32 def auth { username: user, password: password } end
generate_secret()
click to toggle source
# File lib/btsync/communicator.rb, line 7 def generate_secret res = get(path('generatesecret')) res.parsed_response['secret'] end
get(path, opts = {})
click to toggle source
# File lib/btsync/communicator.rb, line 57 def get(path, opts = {}) opts = { headers: { 'Cookie' => cookies }, query: { }, basic_auth: auth }.merge(opts) self.class.get(path, opts) end
password()
click to toggle source
# File lib/btsync/communicator.rb, line 28 def password @opts[:password] end
path(action_name)
click to toggle source
# File lib/btsync/communicator.rb, line 86 def path(action_name) "#{root_url}gui/?token=#{token}&action=#{action_name}" end
port()
click to toggle source
# File lib/btsync/communicator.rb, line 12 def port @opts[:port] end
protocol()
click to toggle source
# File lib/btsync/communicator.rb, line 20 def protocol @opts[:protocol] end
request_token(force = false)
click to toggle source
# File lib/btsync/communicator.rb, line 67 def request_token(force = false) @last_request ||= 0 t = DateTime.now.strftime('%s').to_i if @request_token.nil? || force || (@last_request + 600) < t @last_request = t @request_token = self.class.get(token_path, basic_auth: auth) else @request_token end end
root_url()
click to toggle source
# File lib/btsync/communicator.rb, line 53 def root_url "#{starter}#{uri}:#{port}/" end
starter()
click to toggle source
# File lib/btsync/communicator.rb, line 82 def starter "#{protocol}://" end
token(force = false)
click to toggle source
# File lib/btsync/communicator.rb, line 36 def token(force = false) @token_cache ||= 0 time = DateTime.now.strftime('%s').to_i if time > @token_cache + 600 || force @token = request_token(force). gsub('</div></html>', ''). gsub("<html><div id='token' style='display:none;'>", '') @token_cache = time end @cookies = nil if force @token end
token_path()
click to toggle source
# File lib/btsync/communicator.rb, line 78 def token_path "#{root_url}gui/token.html" end
uri()
click to toggle source
# File lib/btsync/communicator.rb, line 16 def uri @opts[:uri] end
user()
click to toggle source
# File lib/btsync/communicator.rb, line 24 def user @opts[:user] end