gitpic 0.0.1 → 0.0.2
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.
- data/lib/gitpic/uploader.rb +32 -9
- data/lib/gitpic.rb +1 -1
- metadata +7 -7
data/lib/gitpic/uploader.rb
CHANGED
@@ -18,7 +18,8 @@ class Gitpic::Uploader
|
|
18
18
|
if File.directory?(path)
|
19
19
|
upload!(path)
|
20
20
|
else
|
21
|
-
|
21
|
+
next unless photo_extension? file_name
|
22
|
+
checksum = Digest::SHA1.file(path).hexdigest
|
22
23
|
if check_file(checksum)
|
23
24
|
puts "Uploading #{path}"
|
24
25
|
post_file(path)
|
@@ -35,17 +36,39 @@ class Gitpic::Uploader
|
|
35
36
|
end
|
36
37
|
|
37
38
|
def post_file(path)
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
:
|
42
|
-
|
43
|
-
|
44
|
-
|
39
|
+
tries = 0
|
40
|
+
begin
|
41
|
+
file = File.new(path, 'rb')
|
42
|
+
RestClient.post( "#{Gitpic::HOST}/api/file_blobs?auth_token=#{token}", :file_blob => {
|
43
|
+
:data => file,
|
44
|
+
:path => path,
|
45
|
+
:filesystem_created_at => file.ctime,
|
46
|
+
:filesystem_modified_at => file.mtime
|
47
|
+
})
|
48
|
+
rescue RestClient::PreconditionFailed => e
|
49
|
+
puts "Failed to upload #{path}; #{e.response}"
|
50
|
+
rescue RestClient::RequestTimeout, RestClient::ServiceUnavailable => e
|
51
|
+
if tries < 10
|
52
|
+
tries += 1
|
53
|
+
puts "Server temporarily unavailable, trying again (#{tries} time)"
|
54
|
+
sleep 30
|
55
|
+
retry
|
56
|
+
else
|
57
|
+
puts "Server is fully non-responsive, try re-running the uploader later"
|
58
|
+
raise "Stop flogging the server, it's already dead!!!"
|
59
|
+
end
|
60
|
+
rescue Errno::EPIPE
|
61
|
+
puts "Failed to upload #{path}; [\"File is too large\"]"
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
def photo_extension?(file_name)
|
66
|
+
photo_extensions = %w(jpg jpeg png gif)
|
67
|
+
photo_extensions.include? file_name.split('.').last
|
45
68
|
end
|
46
69
|
|
47
70
|
def black_list
|
48
|
-
[".", "..", ".DS_Store"]
|
71
|
+
[".", "..", ".DS_Store", "Thumbs.db"]
|
49
72
|
end
|
50
73
|
|
51
74
|
end
|
data/lib/gitpic.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gitpic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2012-02-29 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: term-ansicolor
|
16
|
-
requirement: &
|
16
|
+
requirement: &2164703760 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 1.0.7
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2164703760
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rest-client
|
27
|
-
requirement: &
|
27
|
+
requirement: &2164703200 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 1.6.7
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2164703200
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: thor
|
38
|
-
requirement: &
|
38
|
+
requirement: &2164702740 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
version: 0.14.6
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *2164702740
|
47
47
|
description: A ruby command line interface for uploading to GitPic
|
48
48
|
email: rosshale@gmail.com
|
49
49
|
executables:
|