Class: BtSync
- Inherits:
-
Object
show all
- Includes:
- BtCommunicator, HTTParty
- Defined in:
- lib/btsync.rb,
lib/btsync/directory.rb
Defined Under Namespace
Classes: Directory
Instance Attribute Summary
#opts
Instance Method Summary
collapse
#auth, #cookies, #generate_secret, #get, #password, #path, #port, #protocol, #request_token, #root_url, #starter, #token, #token_path, #uri, #user
Constructor Details
#initialize(options = {}) ⇒ BtSync
Returns a new instance of BtSync.
13
14
15
16
17
|
# File 'lib/btsync.rb', line 13
def initialize(options = {})
@opts = setup_opts(options)
@errors = []
@token_cache = 0
end
|
Instance Method Details
#add_folder(folder_name, my_secret = nil) ⇒ Object
94
95
96
97
98
99
100
101
102
103
|
# File 'lib/btsync.rb', line 94
def add_folder(folder_name, my_secret = nil)
my_secret ||= generate_secret
query = { name: folder_name, secret: my_secret }
res = get(path('addsyncfolder'), query: query)
unless res['error'] == 0
@errors << res['message']
return false
end
Directory.new(folder_name, my_secret, self)
end
|
#change_setting(type, opt) ⇒ Object
66
67
68
69
70
|
# File 'lib/btsync.rb', line 66
def change_setting(type, opt)
options = get_settings.merge!({ type => opt })
get(path('setsettings'), query: options)
end
|
#check_new_version ⇒ Object
120
121
122
123
|
# File 'lib/btsync.rb', line 120
def check_new_version
res = get(path('checknewversion'))
res.parsed_response['version']
end
|
#device_name ⇒ Object
42
43
44
|
# File 'lib/btsync.rb', line 42
def device_name
get_settings['devicename']
end
|
#device_name=(opt) ⇒ Object
58
59
60
|
# File 'lib/btsync.rb', line 58
def device_name=(opt)
change_setting 'devicename', opt
end
|
#download_limit ⇒ Object
38
39
40
|
# File 'lib/btsync.rb', line 38
def download_limit
get_settings['dlrate'].to_i
end
|
#download_limit=(opt) ⇒ Object
54
55
56
|
# File 'lib/btsync.rb', line 54
def download_limit=(opt)
change_setting 'dlrate', opt
end
|
#errors ⇒ Object
19
20
21
22
23
|
# File 'lib/btsync.rb', line 19
def errors
errors = @errors
@errors = []
errors
end
|
#folders ⇒ Object
25
26
27
28
29
30
31
32
|
# File 'lib/btsync.rb', line 25
def folders
f = get_folder_list['folders']
folders = []
f.each do |folder|
folders << Directory.new(folder['name'], folder['secret'], self)
end
folders
end
|
#get_dir(with_dir = '/') ⇒ Object
125
126
127
128
|
# File 'lib/btsync.rb', line 125
def get_dir(with_dir = '/')
res = get(path('getdir'), query: { 'dir' => with_dir })
res.parsed_response['folders'].map { |f| f.gsub!('//', '/') }
end
|
#get_os_type ⇒ Object
110
111
112
113
|
# File 'lib/btsync.rb', line 110
def get_os_type
res = get(path('getostype'))
res.parsed_response['os']
end
|
#get_settings ⇒ Object
105
106
107
108
|
# File 'lib/btsync.rb', line 105
def get_settings
res = get(path('getsettings'))
res.parsed_response['settings']
end
|
#get_speed ⇒ Object
72
73
74
|
# File 'lib/btsync.rb', line 72
def get_speed
{ up: speed('up'), down: speed('down') }
end
|
#get_version ⇒ Object
115
116
117
118
|
# File 'lib/btsync.rb', line 115
def get_version
res = get(path('getversion'))
res.parsed_response['version']
end
|
#listening_port ⇒ Object
46
47
48
|
# File 'lib/btsync.rb', line 46
def listening_port
get_settings['listeningport'].to_i
end
|
#listening_port=(opt) ⇒ Object
62
63
64
|
# File 'lib/btsync.rb', line 62
def listening_port=(opt)
change_setting 'listeningport', opt
end
|
#remove_folder(folder_name, my_secret = nil) ⇒ Object
87
88
89
90
91
92
|
# File 'lib/btsync.rb', line 87
def remove_folder(folder_name, my_secret = nil)
my_secret ||= secret(folder_name)
query = { name: folder_name, secret: my_secret }
get(path('removefolder'), query: query)
true
end
|
#secret(with_dir) ⇒ Object
130
131
132
133
|
# File 'lib/btsync.rb', line 130
def secret(with_dir)
f = folders.select { |folder| folder.name == with_dir }.first
f.secret
end
|
#speed(type) ⇒ Object
76
77
78
79
80
81
82
83
84
85
|
# File 'lib/btsync.rb', line 76
def speed(type)
case type
when 'up'
i = 0
when 'down'
i = 1
end
l = get_folder_list['speed'].split(', ')[i].split(' ')
{speed: l[0].to_f, metric: l[1]}
end
|
#upload_limit ⇒ Object
34
35
36
|
# File 'lib/btsync.rb', line 34
def upload_limit
get_settings['ulrate'].to_i
end
|
#upload_limit=(opt) ⇒ Object
50
51
52
|
# File 'lib/btsync.rb', line 50
def upload_limit=(opt)
change_setting 'ulrate', opt
end
|