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:
         |