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
96
97
98
99
100
101
102
103
104
105
|
# File 'lib/btsync.rb', line 96
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
122
123
124
125
|
# File 'lib/btsync.rb', line 122
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
|
#down ⇒ Object
84
85
86
87
|
# File 'lib/btsync.rb', line 84
def down
l = get_folder_list['speed'].split(', ')[1].split(' ')
{speed: l[0].to_f, metric: l[1]}
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
127
128
129
130
|
# File 'lib/btsync.rb', line 127
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
112
113
114
115
|
# File 'lib/btsync.rb', line 112
def get_os_type
res = get(path('getostype'))
res.parsed_response['os']
end
|
#get_settings ⇒ Object
107
108
109
110
|
# File 'lib/btsync.rb', line 107
def get_settings
res = get(path('getsettings'))
res.parsed_response['settings']
end
|
#get_speed ⇒ Object
72
73
74
75
76
77
|
# File 'lib/btsync.rb', line 72
def get_speed
{
up: up,
down: down
}
end
|
#get_version ⇒ Object
117
118
119
120
|
# File 'lib/btsync.rb', line 117
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
89
90
91
92
93
94
|
# File 'lib/btsync.rb', line 89
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
132
133
134
135
|
# File 'lib/btsync.rb', line 132
def secret(with_dir)
f = folders.select { |folder| folder.name == with_dir }.first
f.secret
end
|
#up ⇒ Object
79
80
81
82
|
# File 'lib/btsync.rb', line 79
def up
l = get_folder_list['speed'].split(', ')[0].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
|