slipsquare 0.0.1
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.
- checksums.yaml +7 -0
- data/.gitignore +11 -0
- data/.travis.yml +9 -0
- data/CHANGELOG.md +21 -0
- data/CONTRIBUTING.md +28 -0
- data/Gemfile +4 -0
- data/LICENSE.md +22 -0
- data/README.md +93 -0
- data/Rakefile +6 -0
- data/bin/slipsquare +7 -0
- data/lib/slipsquare.rb +6 -0
- data/lib/slipsquare/cli.rb +105 -0
- data/lib/slipsquare/config.rb +67 -0
- data/lib/slipsquare/middleware.rb +106 -0
- data/lib/slipsquare/middleware/account.rb +14 -0
- data/lib/slipsquare/middleware/ask_for_credentials.rb +39 -0
- data/lib/slipsquare/middleware/base.rb +28 -0
- data/lib/slipsquare/middleware/check_configuration.rb +18 -0
- data/lib/slipsquare/middleware/check_credentials.rb +27 -0
- data/lib/slipsquare/middleware/chunked_upload.rb +29 -0
- data/lib/slipsquare/middleware/delete_file.rb +13 -0
- data/lib/slipsquare/middleware/download_file.rb +25 -0
- data/lib/slipsquare/middleware/inject_client.rb +27 -0
- data/lib/slipsquare/middleware/inject_configuration.rb +15 -0
- data/lib/slipsquare/middleware/list_files.rb +19 -0
- data/lib/slipsquare/middleware/make_directory.rb +25 -0
- data/lib/slipsquare/middleware/upload_file.rb +17 -0
- data/lib/slipsquare/version.rb +3 -0
- data/slipsquare.gemspec +34 -0
- data/spec/cli/account.rb +24 -0
- data/spec/cli/authorize_spec.rb +46 -0
- data/spec/cli/chunked_upload_spec.rb +39 -0
- data/spec/cli/delete_file.rb +23 -0
- data/spec/cli/download_file.rb +43 -0
- data/spec/cli/get_keys_spec.rb +30 -0
- data/spec/cli/help_cli_spec.rb +17 -0
- data/spec/cli/ls_spec.rb +36 -0
- data/spec/cli/mkdir_spec.rb +52 -0
- data/spec/cli/upload_file.rb +33 -0
- data/spec/cli/verify_spec.rb +33 -0
- data/spec/cli/version_cli_spec.rb +16 -0
- data/spec/config_spec.rb +70 -0
- data/spec/fixtures/account.json +11 -0
- data/spec/fixtures/chunked_upload.json +5 -0
- data/spec/fixtures/commit_chunked_upload.json +13 -0
- data/spec/fixtures/find_foo_directory.json +15 -0
- data/spec/fixtures/ls_path_success.json +29 -0
- data/spec/fixtures/ls_success.json +14 -0
- data/spec/fixtures/mkdir_success.json +12 -0
- data/spec/fixtures/mkdir_success_multiple_path.json +12 -0
- data/spec/fixtures/upload_success.json +13 -0
- data/spec/fixtures/verify_success.json +14 -0
- data/spec/middleware/base_spec.rb +15 -0
- data/spec/middleware/check_configuration_spec.rb +16 -0
- data/spec/middleware/inject_configuration_spec.rb +16 -0
- data/spec/shared/environment.rb +49 -0
- data/spec/spec_helper.rb +20 -0
- data/tmp/.gitkeep +0 -0
- metadata +270 -0
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Slipsquare::CLI do
|
4
|
+
include_context "spec"
|
5
|
+
|
6
|
+
describe "delete" do
|
7
|
+
it "deletes a folder" do
|
8
|
+
|
9
|
+
stub_request(:get, "https://api.dropbox.com/1/metadata/dropbox/foo?").
|
10
|
+
with(:headers => {'Accept'=>'*/*', 'Authorization'=>/OAuth oauth_consumer_key="#{app_key}", oauth_nonce="\S+", oauth_signature="\S+", oauth_signature_method="HMAC-SHA1", oauth_timestamp="\S+", oauth_token="#{app_token}", oauth_version="1.0"/, 'User-Agent'=>'OAuth gem v0.4.7'}).
|
11
|
+
to_return(:status => 200, :body => fixture('find_foo_directory'))
|
12
|
+
|
13
|
+
@cli.delete('foo')
|
14
|
+
expect($stdout.string).to eq <<-eos
|
15
|
+
Deleting file on Dropbox...
|
16
|
+
To be implemented...
|
17
|
+
eos
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Slipsquare::CLI do
|
4
|
+
include_context "spec"
|
5
|
+
|
6
|
+
after :each do
|
7
|
+
File.delete("otacon.txt") if File.exist?("otacon.txt")
|
8
|
+
end
|
9
|
+
|
10
|
+
describe "download" do
|
11
|
+
|
12
|
+
it "downloads a simple text file" do
|
13
|
+
|
14
|
+
stub_request(:get, "https://api-content.dropbox.com/1/files/dropbox/otacon.txt?").
|
15
|
+
with(:headers => {'Accept'=>'*/*', 'Authorization'=>/OAuth oauth_consumer_key="#{app_key}", oauth_nonce="\S+", oauth_signature="\S+", oauth_signature_method="HMAC-SHA1", oauth_timestamp="\S+", oauth_token="#{app_token}", oauth_version="1.0"/, 'User-Agent'=>'OAuth gem v0.4.7'}).
|
16
|
+
to_return(:status => 200, :body => "Do you think love can bloom even on a battlefield?")
|
17
|
+
|
18
|
+
@cli.download('otacon.txt')
|
19
|
+
expect($stdout.string).to eq <<-eos
|
20
|
+
Download file...
|
21
|
+
File 'otacon.txt' downloaded successfully!
|
22
|
+
eos
|
23
|
+
|
24
|
+
File.read("otacon.txt").should eql "Do you think love can bloom even on a battlefield?"
|
25
|
+
end
|
26
|
+
|
27
|
+
it "outputs a message if file not found" do
|
28
|
+
|
29
|
+
stub_request(:get, "https://api-content.dropbox.com/1/files/dropbox/ghost.txt?").
|
30
|
+
with(:headers => {'Accept'=>'*/*', 'Authorization'=>/OAuth oauth_consumer_key="#{app_key}", oauth_nonce="\S+", oauth_signature="\S+", oauth_signature_method="HMAC-SHA1", oauth_timestamp="\S+", oauth_token="#{app_token}", oauth_version="1.0"/, 'User-Agent'=>'OAuth gem v0.4.7'}).
|
31
|
+
to_return(:status => 404)
|
32
|
+
|
33
|
+
expect { @cli.download('ghost.txt') }.to raise_error(SystemExit)
|
34
|
+
expect($stdout.string).to eq <<-eos
|
35
|
+
Download file...
|
36
|
+
File Not Found! Could not download
|
37
|
+
eos
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Slipsquare::CLI do
|
4
|
+
include_context "spec"
|
5
|
+
|
6
|
+
describe "get-keys" do
|
7
|
+
|
8
|
+
before(:each) do
|
9
|
+
Time.stub!(:now).and_return('123456')
|
10
|
+
end
|
11
|
+
|
12
|
+
it "shows the keys helper text" do
|
13
|
+
|
14
|
+
@cli.options = @cli.options.merge(:get_keys => true)
|
15
|
+
@cli.get_keys
|
16
|
+
|
17
|
+
expect($stdout.string).to eq <<-eos
|
18
|
+
Please open this URL from your Browser, and login: https://www2.dropbox.com/developers/apps
|
19
|
+
Click \"Create app\" button, and choose the following options:
|
20
|
+
Type: Dropbox API app
|
21
|
+
Data: Files and Datastores
|
22
|
+
Permission type: Full Dropbox
|
23
|
+
File Types: All file types
|
24
|
+
App name: Slipsquare123456
|
25
|
+
Cick on the \"Create\" button, and note down the 'app key' and 'app secret'
|
26
|
+
eos
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Slipsquare::CLI do
|
4
|
+
include_context "spec"
|
5
|
+
|
6
|
+
describe "help" do
|
7
|
+
it "shows a help message" do
|
8
|
+
@cli.help
|
9
|
+
expect($stdout.string).to match("Commands:")
|
10
|
+
end
|
11
|
+
|
12
|
+
it "shows a help message for specific commands" do
|
13
|
+
@cli.help "authorize"
|
14
|
+
expect($stdout.string).to match("Usage:")
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/spec/cli/ls_spec.rb
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Slipsquare::CLI do
|
4
|
+
include_context "spec"
|
5
|
+
|
6
|
+
describe "ls called with no path" do
|
7
|
+
it "returns confirmation text when verify passes" do
|
8
|
+
stub_request(:get, "https://api.dropbox.com/1/metadata/dropbox/?").
|
9
|
+
with(:headers => {'Accept'=>'*/*', 'Authorization'=> /OAuth oauth_consumer_key="#{app_key}", oauth_nonce="\S+", oauth_signature="\S+", oauth_signature_method="HMAC-SHA1", oauth_timestamp="\S+", oauth_token="#{app_token}", oauth_version="1.0"/, 'User-Agent'=>'OAuth gem v0.4.7'}).
|
10
|
+
to_return(:status => 200, :body => fixture("ls_success"))
|
11
|
+
@cli.ls
|
12
|
+
expect($stdout.string).to eq <<-eos
|
13
|
+
Listing files from Dropbox...
|
14
|
+
PATH | MIME_TYPE | SIZE
|
15
|
+
------------------------------------------------
|
16
|
+
/Getting_Started.pdf | application/pdf | 225.4KB
|
17
|
+
eos
|
18
|
+
end
|
19
|
+
|
20
|
+
it "ls called with basic path" do
|
21
|
+
stub_request(:get, "https://api.dropbox.com/1/metadata/dropbox/awesome?").
|
22
|
+
with(:headers => {'Accept'=>'*/*', 'Authorization'=> /OAuth oauth_consumer_key="#{app_key}", oauth_nonce="\S+", oauth_signature="\S+", oauth_signature_method="HMAC-SHA1", oauth_timestamp="\S+", oauth_token="#{app_token}", oauth_version="1.0"/, 'User-Agent'=>'OAuth gem v0.4.7'}).
|
23
|
+
to_return(:status => 200, :body => fixture("ls_path_success"))
|
24
|
+
@cli.ls('awesome')
|
25
|
+
expect($stdout.string).to eq <<-eos
|
26
|
+
Listing files from Dropbox...
|
27
|
+
PATH | MIME_TYPE | SIZE
|
28
|
+
------------------------------------------
|
29
|
+
/Awesome/latest.txt | text/plain | 0 bytes
|
30
|
+
eos
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Slipsquare::CLI do
|
4
|
+
include_context "spec"
|
5
|
+
|
6
|
+
describe "mkdir" do
|
7
|
+
it "creates the folder" do
|
8
|
+
stub_request(:post, "https://api.dropbox.com/1/fileops/create_folder").
|
9
|
+
with(
|
10
|
+
:body => {"path"=>"new_folder", "root"=>"dropbox"},
|
11
|
+
:headers => {'Accept'=>'*/*', 'Authorization'=> /OAuth oauth_consumer_key="#{app_key}", oauth_nonce="\S+", oauth_signature="\S+", oauth_signature_method="HMAC-SHA1", oauth_timestamp="\S+", oauth_token="#{app_token}", oauth_version="1.0"/, 'Content-Length'=>'0', 'Content-Type'=>'application/x-www-form-urlencoded', 'User-Agent'=>'OAuth gem v0.4.7'}).
|
12
|
+
to_return(:status => 200, :body => fixture("mkdir_success"))
|
13
|
+
@cli.mkdir('new_folder')
|
14
|
+
expect($stdout.string).to eq <<-eos
|
15
|
+
Creating directory on Dropbox...
|
16
|
+
Directory `new_folder` created successfully
|
17
|
+
eos
|
18
|
+
end
|
19
|
+
|
20
|
+
it "creates the folder within a folder" do
|
21
|
+
stub_request(:post, "https://api.dropbox.com/1/fileops/create_folder").
|
22
|
+
with(
|
23
|
+
:body => {"path"=>"/qux/foo/bar", "root"=>"dropbox"},
|
24
|
+
:headers => {'Accept'=>'*/*', 'Authorization'=> /OAuth oauth_consumer_key="#{app_key}", oauth_nonce="\S+", oauth_signature="\S+", oauth_signature_method="HMAC-SHA1", oauth_timestamp="\S+", oauth_token="#{app_token}", oauth_version="1.0"/, 'Content-Length'=>'0', 'Content-Type'=>'application/x-www-form-urlencoded', 'User-Agent'=>'OAuth gem v0.4.7'}).
|
25
|
+
to_return(:status => 200, :body => fixture("mkdir_success"))
|
26
|
+
@cli.mkdir('/qux/foo/bar')
|
27
|
+
expect($stdout.string).to eq <<-eos
|
28
|
+
Creating directory on Dropbox...
|
29
|
+
Directory `/qux/foo/bar` created successfully
|
30
|
+
eos
|
31
|
+
end
|
32
|
+
|
33
|
+
it "still creates folders with illegal characters" do
|
34
|
+
stub_request(:post, "https://api.dropbox.com/1/fileops/create_folder").
|
35
|
+
with(
|
36
|
+
:body => {"path"=>"new_folder", "root"=>"dropbox"},
|
37
|
+
:headers => {'Accept'=>'*/*', 'Authorization'=> /OAuth oauth_consumer_key="#{app_key}", oauth_nonce="\S+", oauth_signature="\S+", oauth_signature_method="HMAC-SHA1", oauth_timestamp="\S+", oauth_token="#{app_token}", oauth_version="1.0"/, 'Content-Length'=>'0', 'Content-Type'=>'application/x-www-form-urlencoded', 'User-Agent'=>'OAuth gem v0.4.7'}).
|
38
|
+
to_return(:status => 200, :body => fixture("mkdir_success"))
|
39
|
+
@cli.mkdir('\\\:\?\*\new_folder<\>\"\|')
|
40
|
+
expect($stdout.string).to eq <<-eos
|
41
|
+
Creating directory on Dropbox...
|
42
|
+
Illegal character found! Escaping...
|
43
|
+
Escaped directory path: new_folder
|
44
|
+
Directory `new_folder` created successfully
|
45
|
+
eos
|
46
|
+
end
|
47
|
+
|
48
|
+
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Slipsquare::CLI do
|
4
|
+
include_context "spec"
|
5
|
+
|
6
|
+
before :each do
|
7
|
+
File.open("foo.txt", 'w') {|f| f.write("Laugh and grow fat...") }
|
8
|
+
end
|
9
|
+
|
10
|
+
after :each do
|
11
|
+
File.delete("foo.txt") if File.exist?("foo.txt")
|
12
|
+
end
|
13
|
+
|
14
|
+
describe "upload" do
|
15
|
+
|
16
|
+
it "uploads a simple text file" do
|
17
|
+
|
18
|
+
stub_request(:put, "https://api-content.dropbox.com/1/files_put/dropbox/foo.txt?").
|
19
|
+
with(:body => "Laugh and grow fat...",
|
20
|
+
:headers => {'Accept'=>'*/*', 'Authorization'=>/OAuth oauth_body_hash="\S+", oauth_consumer_key="#{app_key}", oauth_nonce="\S+", oauth_signature="\S+", oauth_signature_method="HMAC-SHA1", oauth_timestamp="\S+", oauth_token="#{app_token}", oauth_version="1.0"/, 'Content-Length'=>'21', 'Content-Type'=>'application/octet-stream', 'User-Agent'=>'OAuth gem v0.4.7'}).
|
21
|
+
to_return(:status => 200, :body => fixture('upload_success'))
|
22
|
+
|
23
|
+
@cli.upload('foo.txt')
|
24
|
+
expect($stdout.string).to eq <<-eos
|
25
|
+
Uploading file...
|
26
|
+
File 'foo.txt' uploaded successfully
|
27
|
+
eos
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Slipsquare::CLI do
|
4
|
+
include_context "spec"
|
5
|
+
|
6
|
+
describe "verify" do
|
7
|
+
it "returns confirmation text when verify passes" do
|
8
|
+
stub_request(:get, "https://api.dropbox.com/1/metadata/dropbox/?").
|
9
|
+
with(:headers => {'Accept'=>'*/*', 'Authorization'=> /OAuth oauth_consumer_key="#{app_key}", oauth_nonce="\S+", oauth_signature="\S+", oauth_signature_method="HMAC-SHA1", oauth_timestamp="\S+", oauth_token="#{app_token}", oauth_version="1.0"/, 'User-Agent'=>'OAuth gem v0.4.7'}).
|
10
|
+
to_return(:status => 200, :body => fixture("verify_success"))
|
11
|
+
@cli.verify
|
12
|
+
expect($stdout.string).to eq <<-eos
|
13
|
+
Checking credentials with Dropbox...
|
14
|
+
Connection to dropbox successful!
|
15
|
+
eos
|
16
|
+
end
|
17
|
+
|
18
|
+
it "returns error string when verify fails" do
|
19
|
+
stub_request(:get, "https://api.dropbox.com/1/metadata/dropbox/?").
|
20
|
+
with(:headers => {'Accept'=>'*/*', 'Authorization'=> /OAuth oauth_consumer_key="#{app_key}", oauth_nonce="\S+", oauth_signature="\S+", oauth_signature_method="HMAC-SHA1", oauth_timestamp="\S+", oauth_token="#{app_token}", oauth_version="1.0"/, 'User-Agent'=>'OAuth gem v0.4.7'}).
|
21
|
+
to_return(:status => 401, :body => "", :headers => {})
|
22
|
+
expect { @cli.verify }.to raise_error(SystemExit)
|
23
|
+
expect($stdout.string).to eq <<-eos
|
24
|
+
Checking credentials with Dropbox...
|
25
|
+
Connection to Dropbox failed (401 - Bad or expired token)
|
26
|
+
Check your .slipsquare file, and double check your credentials are correct
|
27
|
+
eos
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Slipsquare::CLI do
|
4
|
+
include_context "spec"
|
5
|
+
|
6
|
+
describe "version" do
|
7
|
+
it "shows the correct version" do
|
8
|
+
|
9
|
+
@cli.options = @cli.options.merge(:version => true)
|
10
|
+
@cli.version
|
11
|
+
|
12
|
+
expect($stdout.string.chomp).to eq("Slipsquare #{Slipsquare::VERSION.to_s}")
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
data/spec/config_spec.rb
ADDED
@@ -0,0 +1,70 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Slipsquare::Configuration do
|
4
|
+
include_context "spec"
|
5
|
+
|
6
|
+
let(:tmp_path) { project_path + "/tmp/slipsquare" }
|
7
|
+
|
8
|
+
after :each do
|
9
|
+
# Clean up the temp file.
|
10
|
+
File.delete(project_path + "/tmp/slipsquare") if File.exist?(project_path + "/tmp/slipsquare")
|
11
|
+
end
|
12
|
+
|
13
|
+
it "is a singleton" do
|
14
|
+
expect(Slipsquare::Configuration).to be_a Class
|
15
|
+
expect do
|
16
|
+
Slipsquare::Configuration.new
|
17
|
+
end.to raise_error(NoMethodError, /private method `new' called/)
|
18
|
+
end
|
19
|
+
|
20
|
+
it "has a data attribute" do
|
21
|
+
config = Slipsquare::Configuration.instance
|
22
|
+
expect(config.data).to be
|
23
|
+
end
|
24
|
+
|
25
|
+
describe "the file" do
|
26
|
+
let(:app_key) { "foo" }
|
27
|
+
let(:secret_key) { "bar" }
|
28
|
+
let(:app_token) { "baz" }
|
29
|
+
let(:app_secret) { "blegga" }
|
30
|
+
|
31
|
+
let(:config) { config = Slipsquare::Configuration.instance }
|
32
|
+
|
33
|
+
before :each do
|
34
|
+
# Create a temporary file
|
35
|
+
config.create_config_file(app_key, secret_key, app_token, app_secret)
|
36
|
+
end
|
37
|
+
|
38
|
+
it "can be created" do
|
39
|
+
expect(File.exist?(tmp_path)).to be_true
|
40
|
+
end
|
41
|
+
|
42
|
+
it "can be loaded" do
|
43
|
+
data = config.load_config_file
|
44
|
+
expect(data).to_not be_nil
|
45
|
+
end
|
46
|
+
|
47
|
+
describe "the file format"
|
48
|
+
let(:data) { YAML.load_file(tmp_path) }
|
49
|
+
|
50
|
+
it "should have an app key" do
|
51
|
+
auth = data["authentication"]
|
52
|
+
expect(auth).to have_key("app_key")
|
53
|
+
end
|
54
|
+
|
55
|
+
it "should have a secret key" do
|
56
|
+
auth = data["authentication"]
|
57
|
+
expect(auth).to have_key("secret_key")
|
58
|
+
end
|
59
|
+
|
60
|
+
it "should have an app token" do
|
61
|
+
client = data["client"]
|
62
|
+
expect(client).to have_key("app_token")
|
63
|
+
end
|
64
|
+
|
65
|
+
it "should have an app secret" do
|
66
|
+
client = data["client"]
|
67
|
+
expect(client).to have_key("app_secret")
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
{
|
2
|
+
"size": "225.4KB",
|
3
|
+
"rev": "35e97029684fe",
|
4
|
+
"thumb_exists": false,
|
5
|
+
"bytes": 230783,
|
6
|
+
"modified": "Tue, 19 Jul 2011 21:55:38 +0000",
|
7
|
+
"path": "/foo.txt",
|
8
|
+
"is_dir": false,
|
9
|
+
"icon": "page_white_acrobat",
|
10
|
+
"root": "dropbox",
|
11
|
+
"mime_type": "application/pdf",
|
12
|
+
"revision": 220823
|
13
|
+
}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
[
|
2
|
+
{
|
3
|
+
"size": "0 bytes",
|
4
|
+
"rev": "35c1f029684fe",
|
5
|
+
"thumb_exists": false,
|
6
|
+
"bytes": 0,
|
7
|
+
"modified": "Mon, 18 Jul 2011 20:13:43 +0000",
|
8
|
+
"path": "/Foo/",
|
9
|
+
"is_dir": false,
|
10
|
+
"icon": "page_white_text",
|
11
|
+
"root": "dropbox",
|
12
|
+
"mime_type": "text/plain",
|
13
|
+
"revision": 220191
|
14
|
+
}
|
15
|
+
]
|
@@ -0,0 +1,29 @@
|
|
1
|
+
{
|
2
|
+
"size": "0 bytes",
|
3
|
+
"hash": "37eb1ba1849d4b0fb0b28caf7ef3af52",
|
4
|
+
"bytes": 0,
|
5
|
+
"thumb_exists": false,
|
6
|
+
"rev": "714f029684fe",
|
7
|
+
"modified": "Wed, 27 Apr 2011 22:18:51 +0000",
|
8
|
+
"path": "/Awesome",
|
9
|
+
"is_dir": true,
|
10
|
+
"icon": "folder_public",
|
11
|
+
"root": "dropbox",
|
12
|
+
"contents": [
|
13
|
+
{
|
14
|
+
"size": "0 bytes",
|
15
|
+
"rev": "35c1f029684fe",
|
16
|
+
"thumb_exists": false,
|
17
|
+
"bytes": 0,
|
18
|
+
"modified": "Mon, 18 Jul 2011 20:13:43 +0000",
|
19
|
+
"client_mtime": "Wed, 20 Apr 2011 16:20:19 +0000",
|
20
|
+
"path": "/Awesome/latest.txt",
|
21
|
+
"is_dir": false,
|
22
|
+
"icon": "page_white_text",
|
23
|
+
"root": "dropbox",
|
24
|
+
"mime_type": "text/plain",
|
25
|
+
"revision": 220191
|
26
|
+
}
|
27
|
+
],
|
28
|
+
"revision": 29007
|
29
|
+
}
|