BtSync 0.4.4 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. checksums.yaml +8 -8
  2. data/README.md +18 -2
  3. data/lib/btsync.rb +39 -3
  4. data/lib/btsync/communicator.rb +18 -4
  5. data/lib/btsync/directory.rb +19 -3
  6. data/lib/btsync/version.rb +1 -1
  7. data/spec/BtSync/bt_sync_spec.rb +60 -0
  8. data/spec/BtSync/directory_spec.rb +17 -3
  9. data/spec/fixtures/cassettes/Setup-BtSync-Directory.yml +11 -10
  10. data/spec/fixtures/cassettes/Setup-Directory-Settings.yml +14 -13
  11. data/spec/fixtures/cassettes/add-folder-list.yml +30 -27
  12. data/spec/fixtures/cassettes/add-folder.yml +21 -20
  13. data/spec/fixtures/cassettes/add-known-host.yml +58 -0
  14. data/spec/fixtures/cassettes/change_download_limit.yml +113 -0
  15. data/spec/fixtures/cassettes/change_listening_port.yml +113 -0
  16. data/spec/fixtures/cassettes/change_name.yml +113 -0
  17. data/spec/fixtures/cassettes/change_upload_limit.yml +113 -0
  18. data/spec/fixtures/cassettes/get-folders.yml +22 -20
  19. data/spec/fixtures/cassettes/get-known-hosts.yml +3 -3
  20. data/spec/fixtures/cassettes/get-os-type.yml +6 -6
  21. data/spec/fixtures/cassettes/get-peers.yml +8 -7
  22. data/spec/fixtures/cassettes/get-preferences.yml +18 -18
  23. data/spec/fixtures/cassettes/get-settings.yml +6 -6
  24. data/spec/fixtures/cassettes/get-version.yml +6 -6
  25. data/spec/fixtures/cassettes/remove-folder-list.yml +19 -17
  26. data/spec/fixtures/cassettes/remove-folder.yml +33 -30
  27. data/spec/fixtures/cassettes/remove-known-host.yml +57 -0
  28. data/spec/fixtures/cassettes/reset_device_name.yml +86 -0
  29. data/spec/fixtures/cassettes/reset_download_limit.yml +86 -0
  30. data/spec/fixtures/cassettes/reset_listening_port.yml +86 -0
  31. data/spec/fixtures/cassettes/reset_upload_limit.yml +86 -0
  32. data/spec/fixtures/cassettes/set-preferences-delete.yml +9 -9
  33. data/spec/fixtures/cassettes/set-preferences-dht.yml +9 -9
  34. data/spec/fixtures/cassettes/set-preferences-hosts.yml +9 -9
  35. data/spec/fixtures/cassettes/set-preferences-lan.yml +9 -9
  36. data/spec/fixtures/cassettes/set-preferences-relay.yml +9 -9
  37. data/spec/fixtures/cassettes/set-preferences-tracker.yml +9 -9
  38. data/spec/fixtures/cassettes/view-folders.yml +3 -3
  39. metadata +22 -2
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZjhjNTQxZjA4ZjE2NzBmMjBjZTc2MWFiZDg1YjQ2MDdmN2E3MTY5Ng==
4
+ Zjg0ZjExNzNmN2ZiYWU5OGFmOTFhYzg0ZmI2MDJhMWY1ZmYzMmEwMA==
5
5
  data.tar.gz: !binary |-
6
- MGZiNjQ3MzY0NDVmNmYyNjM2YjJlOGZmNmQ1YThiMWMyNTA4ZDkyYg==
6
+ YjUxOGM4MGQ0MjJhZTM4Y2I2OTQ1ZmRlMDZjNzMxNGNiMWYyNTkwMg==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- YmMyYjY4ZTU3NWRhOTc4ZThmNTAwYTVmZDEyYjU4YWQyMTg4OTNlOTMzMjk5
10
- MmVhNGQ2ZWI3OWJlZmM0ODI4NTFiODIyM2M1NzU5Y2YzM2U0YmVkZDhlYWFl
11
- ZGM0NzE1YmY3OGFmZGQ3Y2IxYTVkMjdhZTdmZjIwYTMyZTZjNmY=
9
+ YmJlMTBlYzNiZWE3ZDI0OWM5ZmUyNWFmNTk1NmZmMjYyY2VkNzFkODYyODdm
10
+ MzNjN2Q1ZjRmNWFhMWZkYTJlNWRhNWVmOGFkYTNiYTI5ZGUzNDUyN2JjZTQw
11
+ Y2ZiNGQ5YzM0YTc0ZjYwOGMxOGUyYmIyNjNiZGQyMWVmM2YyMTM=
12
12
  data.tar.gz: !binary |-
13
- MGFkMWU3ZTAyNTk1MjMwODJiNTk4YWFjMWZiN2Y5OWRmY2Y2YzUyY2E5NTFj
14
- MmM1N2YwOTQ0NDVlNDYzZmUwOTdhYjYzMjJhYWFjYTg4NThhZGNlOWFmNTI5
15
- MjVhOWIxNmU1ZTZmYTMyNzEyNDhhYTY0MmRhNmExOWJjYWY3MzI=
13
+ YWQ1MGMzMmUzZDRmZDlmNjE4ODViMTIzODk3OTUxZjNhODM0MWZjZWZjOTll
14
+ ZmNkODNmYTFiYzFjZTFlM2Y4YmYzZTc2MGJjODcyMzlmZjc3MmQxYTY4YTI4
15
+ NzcyZTE0MGE0NzhkNjU4ODYwMTBkOTc3NDY3MDk0NGE0ZWFlZTk=
data/README.md CHANGED
@@ -24,7 +24,18 @@ Or install it yourself as:
24
24
  ### Using BtSync
25
25
 
26
26
  ```ruby
27
- bittorrent = BtSync.new
27
+ bittorrent = BtSync.new(options)
28
+
29
+ options is a hash that can contain any of the following options. The values shown are the defaults if no argument is passed in
30
+
31
+ ```ruby
32
+ {
33
+ :protocol => "http",
34
+ :uri => "localhost",
35
+ :port => "8888",
36
+ :user => "",
37
+ :password => ""
38
+ }
28
39
  ```
29
40
 
30
41
  ####BtSync::Directory
@@ -44,7 +55,12 @@ On a ```BtSync::Directory``` you can
44
55
 
45
56
  ## Todo
46
57
 
47
- [ ] Manage predefined hosts
58
+ [x] Manage predefined hosts
59
+ [x] Allow user authentication
60
+
61
+ ## Known Issues
62
+
63
+ [] Bittorrent Sync must be run on a Linux system
48
64
 
49
65
  ## Contributing
50
66
 
@@ -10,10 +10,17 @@ class BtSync
10
10
  include HTTParty
11
11
  default_params :output => 'json'
12
12
  def initialize options = {}
13
- @opts = options.symbolize
14
- @opts.merge!({:uri => "http://localhost", :port => "8888", :user => "", :password => ""})
15
- @uri = @opts[:uri]
13
+ @opts = {
14
+ :protocol => "http",
15
+ :uri => "localhost",
16
+ :port => "8888",
17
+ :user => "",
18
+ :password => ""}
19
+ @opts.merge!(options.symbolize)
20
+ @opts[:uri].gsub!(/^(https?:\/\/){1,}/i, '')
16
21
  @port = @opts[:port]
22
+ @user = @opts[:user]
23
+ @pass = @opts[:password]
17
24
  @errors = []
18
25
  @token_cache = 0
19
26
  end
@@ -30,6 +37,35 @@ class BtSync
30
37
  end
31
38
  folders
32
39
  end
40
+ def upload_limit
41
+ get_settings["ulrate"].to_i
42
+ end
43
+ def download_limit
44
+ get_settings["dlrate"].to_i
45
+ end
46
+ def device_name
47
+ get_settings["devicename"]
48
+ end
49
+ def listening_port
50
+ get_settings["listeningport"].to_i
51
+ end
52
+ def upload_limit= opt
53
+ change_setting "ulrate", opt
54
+ end
55
+ def download_limit= opt
56
+ change_setting "dlrate", opt
57
+ end
58
+ def device_name= opt
59
+ change_setting "devicename", opt
60
+ end
61
+ def listening_port= opt
62
+ change_setting "listeningport", opt
63
+ end
64
+ def change_setting type, opt
65
+ options = get_settings.merge!({type => opt})
66
+
67
+ res = self.class.get(path('setsettings'), :query => options, :headers => {"Cookie" => cookies })
68
+ end
33
69
  def get_speed
34
70
  s = get_folder_list["speed"].split(", ")
35
71
  up = s[0].split(" ")
@@ -6,10 +6,22 @@ module BtCommunicator
6
6
  res.parsed_response["secret"]
7
7
  end
8
8
  def port
9
- @port
9
+ @opts[:port]
10
10
  end
11
11
  def uri
12
- @uri
12
+ @opts[:uri]
13
+ end
14
+ def protocol
15
+ @opts[:protocol]
16
+ end
17
+ def user
18
+ @opts[:user]
19
+ end
20
+ def password
21
+ @opts[:password]
22
+ end
23
+ def communication_options
24
+ @opts
13
25
  end
14
26
  def token force = false
15
27
  @token_cache ||= 0
@@ -25,7 +37,7 @@ module BtCommunicator
25
37
  @cookies ||= request_token.headers["set-cookie"].split("; ")[0]
26
38
  end
27
39
  def root_url
28
- "#{uri}:#{port}/"
40
+ "#{starter}#{uri}:#{port}/"
29
41
  end
30
42
  def request_token force = false
31
43
  @last_request ||= 0
@@ -37,7 +49,9 @@ module BtCommunicator
37
49
  @request_token
38
50
  end
39
51
  end
40
-
52
+ def starter
53
+ "#{protocol}://#{user}:#{password}@"
54
+ end
41
55
  def path action_name
42
56
  "#{root_url}gui/?token=#{token}&action=#{action_name}"
43
57
  end
@@ -9,8 +9,7 @@ class BtSync
9
9
  @name = name
10
10
  @secret = secret
11
11
 
12
- @uri = btsync.uri
13
- @port = btsync.port
12
+ @opts = btsync.communication_options
14
13
 
15
14
  find_or_create
16
15
 
@@ -43,7 +42,24 @@ class BtSync
43
42
  end
44
43
  def known_hosts
45
44
  res = self.class.get(path('getknownhosts'), :query => {:name => name, :secret => secret}, :headers => {"Cookie" => cookies })
46
- res["hosts"]
45
+ hosts = {}
46
+ res["hosts"].map{|h| hosts[h["index"]] = h["peer"]}
47
+ hosts
48
+ end
49
+ def add_host host, port
50
+ res = self.class.get(path('addknownhosts'), :query =>{:name => name, :secret => secret, :addr =>host, :port => port}, :headers => {"Cookie" => cookies })
51
+ true
52
+ end
53
+ def remove_host index
54
+ res = self.class.get(path('removeknownhosts'), :query =>{:name => name, :secret => secret, :index => index}, :headers => {"Cookie" => cookies })
55
+ if res.parsed_response != {}
56
+ res.parsed_response
57
+ else
58
+ true
59
+ end
60
+ end
61
+ def remove_host_by_ip ip, port = nil
62
+ @hosts = known_hosts
47
63
  end
48
64
  def use_tracker=(opt)
49
65
  set_pref('usetracker', opt)
@@ -1,3 +1,3 @@
1
1
  module BtsyncVersion
2
- VERSION = "0.4.4"
2
+ VERSION = "0.5.0"
3
3
  end
@@ -20,6 +20,66 @@ describe 'BtSync' do
20
20
  @settings["devicename"].should == "IceyEC-Virtual1"
21
21
  @settings["listeningport"].should == 63754
22
22
  end
23
+ it "can get listening port" do
24
+ VCR.use_cassette("get-settings") do
25
+ @bt.listening_port.should == 63754
26
+ end
27
+ end
28
+ it "can get upload limit" do
29
+ VCR.use_cassette("get-settings") do
30
+ @bt.upload_limit.should == 0
31
+ end
32
+ end
33
+ it "can get download limit" do
34
+ VCR.use_cassette("get-settings") do
35
+ @bt.download_limit.should == 0
36
+ end
37
+ end
38
+ it "can get device name" do
39
+ VCR.use_cassette("get-settings") do
40
+ @bt.device_name.should == "IceyEC-Virtual1"
41
+ end
42
+ end
43
+ it "can change the device_name" do
44
+ VCR.use_cassette("change_name") do
45
+ @bt.device_name = "IceyEC-Virtual2"
46
+ @bt.device_name.should == "IceyEC-Virtual2"
47
+ end
48
+ VCR.use_cassette('reset_device_name') do
49
+ @bt.device_name = "IceyEC-Virtual1"
50
+ @bt.device_name.should == "IceyEC-Virtual1"
51
+ end
52
+ end
53
+ it "can change the upload limit" do
54
+ VCR.use_cassette("change_upload_limit") do
55
+ @bt.upload_limit = 1000
56
+ @bt.upload_limit.should == 1000
57
+ end
58
+ VCR.use_cassette('reset_upload_limit') do
59
+ @bt.upload_limit = 0
60
+ @bt.upload_limit.should == 0
61
+ end
62
+ end
63
+ it "can change the download limit" do
64
+ VCR.use_cassette("change_download_limit") do
65
+ @bt.download_limit = 1000
66
+ @bt.download_limit.should == 1000
67
+ end
68
+ VCR.use_cassette('reset_download_limit') do
69
+ @bt.download_limit = 0
70
+ @bt.download_limit.should == 0
71
+ end
72
+ end
73
+ it "can change the listening_port" do
74
+ VCR.use_cassette("change_listening_port") do
75
+ @bt.listening_port = 12345
76
+ @bt.listening_port.should == 12345
77
+ end
78
+ VCR.use_cassette('reset_listening_port') do
79
+ @bt.listening_port = 63754
80
+ @bt.listening_port.should == 63754
81
+ end
82
+ end
23
83
  it "can check the OS" do
24
84
  VCR.use_cassette("get-os-type") do
25
85
  @os = @bt.get_os_type
@@ -33,13 +33,27 @@ describe 'BtSync::Directory' do
33
33
  VCR.use_cassette("get-peers") do
34
34
  @peers = @directory.peers
35
35
  end
36
- @peers.first.should == nil
36
+ @peers.first.should == {"direct"=>1, "name"=>"IceyEC Portable", "status"=>"Synced on 06/05/13 20:52:35"}
37
37
  end
38
- it "can get see known hosts" do
38
+ it "can get known hosts" do
39
39
  VCR.use_cassette("get-known-hosts") do
40
40
  @hosts = @directory.known_hosts
41
41
  end
42
- @hosts.first["peer"].should == "192.168.1.5:45685"
42
+ @hosts[0].should == "192.168.1.5:45685"
43
+ end
44
+ it "can add a known host" do
45
+ VCR.use_cassette('add-known-host') do
46
+ @directory.add_host('10.0.1.254', '12345')
47
+ @hosts = @directory.known_hosts
48
+ end
49
+ @hosts[1].should == "10.0.1.254:12345"
50
+ end
51
+ it "can remove a known host" do
52
+ VCR.use_cassette('remove-known-host') do
53
+ @directory.remove_host(1)
54
+ @hosts = @directory.known_hosts
55
+ end
56
+ @hosts.values.should_not include '10.0.1.254:12345'
43
57
  end
44
58
  it "can check it's settings" do
45
59
  VCR.use_cassette("get-preferences") do
@@ -19,23 +19,23 @@ http_interactions:
19
19
  Content-Type:
20
20
  - text/html
21
21
  Set-Cookie:
22
- - GUID=E3lhmlycmFgf7ESFDvoZ; path=/
22
+ - GUID=cQaFdm1vWSBv9LvephVY; path=/
23
23
  Cache-Control:
24
24
  - no-cache
25
25
  body:
26
26
  encoding: US-ASCII
27
- string: <html><div id='token' style='display:none;'>XkuWXu3e6UgIFlZ7Z-DRbgZRZKUuVp5HOH9Z5m1d4B_DS4YoEU_Tqy4fslEAAAAA</div></html>
27
+ string: <html><div id='token' style='display:none;'>QLBnhvyW_0jKDqQDwuhTM-1X6DfFF7xJDNSq4G5QowPTdzMqbGLGBn-DtlEAAAAA</div></html>
28
28
  http_version:
29
- recorded_at: Fri, 07 Jun 2013 17:58:06 GMT
29
+ recorded_at: Tue, 11 Jun 2013 01:55:14 GMT
30
30
  - request:
31
31
  method: get
32
- uri: http://localhost:8888/gui/?action=getsyncfolders&output=json&token=XkuWXu3e6UgIFlZ7Z-DRbgZRZKUuVp5HOH9Z5m1d4B_DS4YoEU_Tqy4fslEAAAAA
32
+ uri: http://localhost:8888/gui/?action=getsyncfolders&output=json&token=QLBnhvyW_0jKDqQDwuhTM-1X6DfFF7xJDNSq4G5QowPTdzMqbGLGBn-DtlEAAAAA
33
33
  body:
34
34
  encoding: US-ASCII
35
35
  string: ''
36
36
  headers:
37
37
  Cookie:
38
- - GUID=E3lhmlycmFgf7ESFDvoZ
38
+ - GUID=cQaFdm1vWSBv9LvephVY
39
39
  response:
40
40
  status:
41
41
  code: 200
@@ -44,16 +44,17 @@ http_interactions:
44
44
  Connection:
45
45
  - keep-alive
46
46
  Content-Length:
47
- - '185'
47
+ - '270'
48
48
  Content-Type:
49
49
  - application/json; charset=utf-8
50
50
  Cache-Control:
51
51
  - no-cache
52
52
  body:
53
53
  encoding: US-ASCII
54
- string: ! '{ "folders": [ { "name": "\/home\/chris\/Documents", "peers": [ ],
55
- "secret": "6PX74LIR2RA2FF2W3DC25MG2CF6SQDSJ", "size": "0 B in 0 files" } ],
56
- "speed": "0.0 kB\/s up, 0.0 kB\/s down" }'
54
+ string: ! '{ "folders": [ { "name": "\/home\/chris\/Documents", "peers": [ {
55
+ "direct": 1, "name": "IceyEC Portable", "status": "Synced on 06\/05\/13 20:52:35"
56
+ } ], "secret": "6PX74LIR2RA2FF2W3DC25MG2CF6SQDSJ", "size": "0 B in 0 files"
57
+ } ], "speed": "0.0 kB\/s up, 0.0 kB\/s down" }'
57
58
  http_version:
58
- recorded_at: Fri, 07 Jun 2013 17:58:06 GMT
59
+ recorded_at: Tue, 11 Jun 2013 01:55:14 GMT
59
60
  recorded_with: VCR 2.5.0
@@ -19,23 +19,23 @@ http_interactions:
19
19
  Content-Type:
20
20
  - text/html
21
21
  Set-Cookie:
22
- - GUID=BuR9HOy5Q7UR5Kg4zToj; path=/
22
+ - GUID=SZGEavWRWlylZwpb4y1U; path=/
23
23
  Cache-Control:
24
24
  - no-cache
25
25
  body:
26
26
  encoding: US-ASCII
27
- string: <html><div id='token' style='display:none;'>5K85aW3p3a6w1SYpvmcT2b8wfIf78_IiXbhF8rWcC89R0jqH44Zm3C4fslEAAAAA</div></html>
27
+ string: <html><div id='token' style='display:none;'>cNJuLdTzhAVEgK83V3Ai3F9LGEGb2oDNWAwa1BWst7Dpo45MpwWH93-DtlEAAAAA</div></html>
28
28
  http_version:
29
- recorded_at: Fri, 07 Jun 2013 17:58:06 GMT
29
+ recorded_at: Tue, 11 Jun 2013 01:55:14 GMT
30
30
  - request:
31
31
  method: get
32
- uri: http://localhost:8888/gui/?action=getsyncfolders&output=json&token=5K85aW3p3a6w1SYpvmcT2b8wfIf78_IiXbhF8rWcC89R0jqH44Zm3C4fslEAAAAA
32
+ uri: http://localhost:8888/gui/?action=getsyncfolders&output=json&token=cNJuLdTzhAVEgK83V3Ai3F9LGEGb2oDNWAwa1BWst7Dpo45MpwWH93-DtlEAAAAA
33
33
  body:
34
34
  encoding: US-ASCII
35
35
  string: ''
36
36
  headers:
37
37
  Cookie:
38
- - GUID=BuR9HOy5Q7UR5Kg4zToj
38
+ - GUID=SZGEavWRWlylZwpb4y1U
39
39
  response:
40
40
  status:
41
41
  code: 200
@@ -44,27 +44,28 @@ http_interactions:
44
44
  Connection:
45
45
  - keep-alive
46
46
  Content-Length:
47
- - '185'
47
+ - '270'
48
48
  Content-Type:
49
49
  - application/json; charset=utf-8
50
50
  Cache-Control:
51
51
  - no-cache
52
52
  body:
53
53
  encoding: US-ASCII
54
- string: ! '{ "folders": [ { "name": "\/home\/chris\/Documents", "peers": [ ],
55
- "secret": "6PX74LIR2RA2FF2W3DC25MG2CF6SQDSJ", "size": "0 B in 0 files" } ],
56
- "speed": "0.0 kB\/s up, 0.0 kB\/s down" }'
54
+ string: ! '{ "folders": [ { "name": "\/home\/chris\/Documents", "peers": [ {
55
+ "direct": 1, "name": "IceyEC Portable", "status": "Synced on 06\/05\/13 20:52:35"
56
+ } ], "secret": "6PX74LIR2RA2FF2W3DC25MG2CF6SQDSJ", "size": "0 B in 0 files"
57
+ } ], "speed": "0.0 kB\/s up, 0.0 kB\/s down" }'
57
58
  http_version:
58
- recorded_at: Fri, 07 Jun 2013 17:58:06 GMT
59
+ recorded_at: Tue, 11 Jun 2013 01:55:14 GMT
59
60
  - request:
60
61
  method: get
61
- uri: http://localhost:8888/gui/?action=setfolderpref&deletetotrash=1&name=/home/chris/Documents&output=json&relay=1&searchdht=0&searchlan=1&secret=6PX74LIR2RA2FF2W3DC25MG2CF6SQDSJ&token=5K85aW3p3a6w1SYpvmcT2b8wfIf78_IiXbhF8rWcC89R0jqH44Zm3C4fslEAAAAA&usehosts=1&usetracker=1
62
+ uri: http://localhost:8888/gui/?action=setfolderpref&deletetotrash=1&name=/home/chris/Documents&output=json&relay=1&searchdht=0&searchlan=1&secret=6PX74LIR2RA2FF2W3DC25MG2CF6SQDSJ&token=cNJuLdTzhAVEgK83V3Ai3F9LGEGb2oDNWAwa1BWst7Dpo45MpwWH93-DtlEAAAAA&usehosts=1&usetracker=1
62
63
  body:
63
64
  encoding: US-ASCII
64
65
  string: ''
65
66
  headers:
66
67
  Cookie:
67
- - GUID=BuR9HOy5Q7UR5Kg4zToj
68
+ - GUID=SZGEavWRWlylZwpb4y1U
68
69
  response:
69
70
  status:
70
71
  code: 200
@@ -82,5 +83,5 @@ http_interactions:
82
83
  encoding: US-ASCII
83
84
  string: ! '{ }'
84
85
  http_version:
85
- recorded_at: Fri, 07 Jun 2013 17:58:06 GMT
86
+ recorded_at: Tue, 11 Jun 2013 01:55:14 GMT
86
87
  recorded_with: VCR 2.5.0
@@ -2,13 +2,13 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: http://localhost:8888/gui/?action=getsyncfolders&output=json&token=7cFoPQ5VvJbcU25vUUYeQSl9uIa5_NkKsdM3lRLFyhjTp7_f9OnU8S4fslEAAAAA
5
+ uri: http://localhost:8888/gui/?action=getsyncfolders&output=json&token=0yGezY2QZeVy7GPzaV-TQ6SuOMns8TlPgbHND059Qv-NnsquBvqIln-DtlEAAAAA
6
6
  body:
7
7
  encoding: US-ASCII
8
8
  string: ''
9
9
  headers:
10
10
  Cookie:
11
- - GUID=ONEG0039oAQKNtLjyOBm
11
+ - GUID=YvUwERzuA6KDtWx5gBqG
12
12
  response:
13
13
  status:
14
14
  code: 200
@@ -17,19 +17,20 @@ http_interactions:
17
17
  Connection:
18
18
  - keep-alive
19
19
  Content-Length:
20
- - '310'
20
+ - '395'
21
21
  Content-Type:
22
22
  - application/json; charset=utf-8
23
23
  Cache-Control:
24
24
  - no-cache
25
25
  body:
26
26
  encoding: US-ASCII
27
- string: ! '{ "folders": [ { "name": "\/home\/chris\/Documents", "peers": [ ],
28
- "secret": "6PX74LIR2RA2FF2W3DC25MG2CF6SQDSJ", "size": "0 B in 0 files" },
29
- { "name": "\/home\/chris\/bt_test", "peers": [ ], "secret": "SXBX73B6OSTJ3P3AEUKGGPK6EKLO5L4K",
27
+ string: ! '{ "folders": [ { "name": "\/home\/chris\/Documents", "peers": [ {
28
+ "direct": 1, "name": "IceyEC Portable", "status": "Synced on 06\/05\/13 20:52:35"
29
+ } ], "secret": "6PX74LIR2RA2FF2W3DC25MG2CF6SQDSJ", "size": "0 B in 0 files"
30
+ }, { "name": "\/home\/chris\/bt_test", "peers": [ ], "secret": "FEEBRD6KX6NFZYJRVVN6WKGONI467MZE",
30
31
  "size": "0 B in 0 files" } ], "speed": "0.0 kB\/s up, 0.0 kB\/s down" }'
31
32
  http_version:
32
- recorded_at: Fri, 07 Jun 2013 17:58:06 GMT
33
+ recorded_at: Tue, 11 Jun 2013 01:55:13 GMT
33
34
  - request:
34
35
  method: get
35
36
  uri: http://localhost:8888/gui/token.html?output=text
@@ -49,23 +50,23 @@ http_interactions:
49
50
  Content-Type:
50
51
  - text/html
51
52
  Set-Cookie:
52
- - GUID=jlXfE6H2JiIC9fxgLaBP; path=/
53
+ - GUID=Cp4jt4ReFqAFFPOa27Ug; path=/
53
54
  Cache-Control:
54
55
  - no-cache
55
56
  body:
56
57
  encoding: US-ASCII
57
- string: <html><div id='token' style='display:none;'>N5D8txAkMcW3ObY8moLCoGcM_YnI-O9Wik1iTXirs846mayy0WsnnC4fslEAAAAA</div></html>
58
+ string: <html><div id='token' style='display:none;'>M-w4xBeY_d3X2M0_exuoHEuilyomwOAykfZQQBoqiBJYEnv-U7EtQ3-DtlEAAAAA</div></html>
58
59
  http_version:
59
- recorded_at: Fri, 07 Jun 2013 17:58:06 GMT
60
+ recorded_at: Tue, 11 Jun 2013 01:55:13 GMT
60
61
  - request:
61
62
  method: get
62
- uri: http://localhost:8888/gui/?action=getsyncfolders&output=json&token=N5D8txAkMcW3ObY8moLCoGcM_YnI-O9Wik1iTXirs846mayy0WsnnC4fslEAAAAA
63
+ uri: http://localhost:8888/gui/?action=getsyncfolders&output=json&token=M-w4xBeY_d3X2M0_exuoHEuilyomwOAykfZQQBoqiBJYEnv-U7EtQ3-DtlEAAAAA
63
64
  body:
64
65
  encoding: US-ASCII
65
66
  string: ''
66
67
  headers:
67
68
  Cookie:
68
- - GUID=jlXfE6H2JiIC9fxgLaBP
69
+ - GUID=Cp4jt4ReFqAFFPOa27Ug
69
70
  response:
70
71
  status:
71
72
  code: 200
@@ -74,19 +75,20 @@ http_interactions:
74
75
  Connection:
75
76
  - keep-alive
76
77
  Content-Length:
77
- - '310'
78
+ - '395'
78
79
  Content-Type:
79
80
  - application/json; charset=utf-8
80
81
  Cache-Control:
81
82
  - no-cache
82
83
  body:
83
84
  encoding: US-ASCII
84
- string: ! '{ "folders": [ { "name": "\/home\/chris\/Documents", "peers": [ ],
85
- "secret": "6PX74LIR2RA2FF2W3DC25MG2CF6SQDSJ", "size": "0 B in 0 files" },
86
- { "name": "\/home\/chris\/bt_test", "peers": [ ], "secret": "SXBX73B6OSTJ3P3AEUKGGPK6EKLO5L4K",
85
+ string: ! '{ "folders": [ { "name": "\/home\/chris\/Documents", "peers": [ {
86
+ "direct": 1, "name": "IceyEC Portable", "status": "Synced on 06\/05\/13 20:52:35"
87
+ } ], "secret": "6PX74LIR2RA2FF2W3DC25MG2CF6SQDSJ", "size": "0 B in 0 files"
88
+ }, { "name": "\/home\/chris\/bt_test", "peers": [ ], "secret": "FEEBRD6KX6NFZYJRVVN6WKGONI467MZE",
87
89
  "size": "0 B in 0 files" } ], "speed": "0.0 kB\/s up, 0.0 kB\/s down" }'
88
90
  http_version:
89
- recorded_at: Fri, 07 Jun 2013 17:58:06 GMT
91
+ recorded_at: Tue, 11 Jun 2013 01:55:13 GMT
90
92
  - request:
91
93
  method: get
92
94
  uri: http://localhost:8888/gui/token.html?output=text
@@ -106,23 +108,23 @@ http_interactions:
106
108
  Content-Type:
107
109
  - text/html
108
110
  Set-Cookie:
109
- - GUID=NTxZnDWPqRo7MpZ0QSdl; path=/
111
+ - GUID=WBI9LeZzdEJEU8GfuXFY; path=/
110
112
  Cache-Control:
111
113
  - no-cache
112
114
  body:
113
115
  encoding: US-ASCII
114
- string: <html><div id='token' style='display:none;'>-Ic-huNGlb8K_-Pg1klrdCIgKD9efaYWpx2yXli-v83JfZ46-P26lC4fslEAAAAA</div></html>
116
+ string: <html><div id='token' style='display:none;'>w7z2LJ6KChGJLPNEAKaHWyfhXeY0qUSd106gAEt-Zpax0zeVZp0NVH-DtlEAAAAA</div></html>
115
117
  http_version:
116
- recorded_at: Fri, 07 Jun 2013 17:58:06 GMT
118
+ recorded_at: Tue, 11 Jun 2013 01:55:13 GMT
117
119
  - request:
118
120
  method: get
119
- uri: http://localhost:8888/gui/?action=getsyncfolders&output=json&token=-Ic-huNGlb8K_-Pg1klrdCIgKD9efaYWpx2yXli-v83JfZ46-P26lC4fslEAAAAA
121
+ uri: http://localhost:8888/gui/?action=getsyncfolders&output=json&token=w7z2LJ6KChGJLPNEAKaHWyfhXeY0qUSd106gAEt-Zpax0zeVZp0NVH-DtlEAAAAA
120
122
  body:
121
123
  encoding: US-ASCII
122
124
  string: ''
123
125
  headers:
124
126
  Cookie:
125
- - GUID=NTxZnDWPqRo7MpZ0QSdl
127
+ - GUID=WBI9LeZzdEJEU8GfuXFY
126
128
  response:
127
129
  status:
128
130
  code: 200
@@ -131,17 +133,18 @@ http_interactions:
131
133
  Connection:
132
134
  - keep-alive
133
135
  Content-Length:
134
- - '310'
136
+ - '395'
135
137
  Content-Type:
136
138
  - application/json; charset=utf-8
137
139
  Cache-Control:
138
140
  - no-cache
139
141
  body:
140
142
  encoding: US-ASCII
141
- string: ! '{ "folders": [ { "name": "\/home\/chris\/Documents", "peers": [ ],
142
- "secret": "6PX74LIR2RA2FF2W3DC25MG2CF6SQDSJ", "size": "0 B in 0 files" },
143
- { "name": "\/home\/chris\/bt_test", "peers": [ ], "secret": "SXBX73B6OSTJ3P3AEUKGGPK6EKLO5L4K",
143
+ string: ! '{ "folders": [ { "name": "\/home\/chris\/Documents", "peers": [ {
144
+ "direct": 1, "name": "IceyEC Portable", "status": "Synced on 06\/05\/13 20:52:35"
145
+ } ], "secret": "6PX74LIR2RA2FF2W3DC25MG2CF6SQDSJ", "size": "0 B in 0 files"
146
+ }, { "name": "\/home\/chris\/bt_test", "peers": [ ], "secret": "FEEBRD6KX6NFZYJRVVN6WKGONI467MZE",
144
147
  "size": "0 B in 0 files" } ], "speed": "0.0 kB\/s up, 0.0 kB\/s down" }'
145
148
  http_version:
146
- recorded_at: Fri, 07 Jun 2013 17:58:06 GMT
149
+ recorded_at: Tue, 11 Jun 2013 01:55:13 GMT
147
150
  recorded_with: VCR 2.5.0