Sha256: 5f0d3f7d23dc547b76f505c3bcf3482d1c8483c85ee8fb0c85d5183548652fcd
Contents?: true
Size: 1.63 KB
Versions: 2
Compression:
Stored size: 1.63 KB
Contents
# encoding: utf-8 module BtCommunicator include HTTParty attr_reader :opts disable_rails_query_string_format default_params output: 'json' def generate_secret res = get(path('generatesecret')) res.parsed_response['secret'] end def port @opts[:port] end def uri @opts[:uri] end def protocol @opts[:protocol] end def user @opts[:user] end def password @opts[:password] end def auth { username: user, password: password } end 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 def cookies @cookies ||= request_token.headers['set-cookie'].split('; ')[0] end def root_url "#{starter}#{uri}:#{port}/" end def get(path, opts = {}) opts = { headers: { 'Cookie' => cookies }, query: { }, basic_auth: auth }.merge(opts) self.class.get(path, opts) end 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 def token_path "#{root_url}gui/token.html" end def starter "#{protocol}://" end def path(action_name) "#{root_url}gui/?token=#{token}&action=#{action_name}" end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
BtSync-0.6.2 | lib/btsync/communicator.rb |
BtSync-0.6.1 | lib/btsync/communicator.rb |