flickraw 0.7 → 0.7.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.
- data/lib/flickraw.rb +22 -7
- data/rakefile +2 -1
- metadata +2 -2
data/lib/flickraw.rb
CHANGED
@@ -25,8 +25,14 @@ require 'digest/md5'
|
|
25
25
|
require 'json'
|
26
26
|
require 'cgi'
|
27
27
|
|
28
|
+
FlickrawOptions = {} if not Object.const_defined? :FlickrawOptions
|
29
|
+
if ENV['http_proxy'] and not FlickrawOptions[:proxy_host]
|
30
|
+
proxy = URI.parse ENV['http_proxy']
|
31
|
+
FlickrawOptions.update(:proxy_host => proxy.host, :proxy_port => proxy.port, :proxy_user => proxy.user, :proxy_password => proxy.password)
|
32
|
+
end
|
33
|
+
|
28
34
|
module FlickRaw
|
29
|
-
VERSION='0.7'
|
35
|
+
VERSION='0.7.1'
|
30
36
|
|
31
37
|
FLICKR_HOST='api.flickr.com'.freeze
|
32
38
|
|
@@ -148,7 +154,7 @@ module FlickRaw
|
|
148
154
|
# Raises FailedResponse if the response status is _failed_.
|
149
155
|
def call(req, args={})
|
150
156
|
path = REST_PATH + build_args(args, req).collect { |a, v| "#{a}=#{v}" }.join('&')
|
151
|
-
http_response =
|
157
|
+
http_response = open_flickr {|http| http.get(path, 'User-Agent' => "Flickraw/#{VERSION}") }
|
152
158
|
parse_response(http_response, req)
|
153
159
|
end
|
154
160
|
|
@@ -159,7 +165,7 @@ module FlickRaw
|
|
159
165
|
# See http://www.flickr.com/services/api/upload.api.html for more information on the arguments.
|
160
166
|
def upload_photo(file, args={})
|
161
167
|
photo = File.open(file, 'rb') { |f| f.read }
|
162
|
-
boundary = MD5.
|
168
|
+
boundary = Digest::MD5.hexdigest(photo)
|
163
169
|
|
164
170
|
header = {'Content-type' => "multipart/form-data, boundary=#{boundary} ", 'User-Agent' => "Flickraw/#{VERSION}"}
|
165
171
|
query = ''
|
@@ -178,7 +184,7 @@ module FlickRaw
|
|
178
184
|
"\r\n" <<
|
179
185
|
"--#{boundary}--"
|
180
186
|
|
181
|
-
http_response =
|
187
|
+
http_response = open_flickr {|http| http.post(UPLOAD_PATH, query, header) }
|
182
188
|
xml = http_response.body
|
183
189
|
if xml[/stat="(\w+)"/, 1] == 'fail'
|
184
190
|
msg = xml[/msg="([^"]+)"/, 1]
|
@@ -213,6 +219,13 @@ module FlickRaw
|
|
213
219
|
token_reqs = ['flickr.auth.getToken', 'flickr.auth.getFullToken', 'flickr.auth.checkToken']
|
214
220
|
@token = res.token if token_reqs.include?(req) and res.respond_to?(:token)
|
215
221
|
end
|
222
|
+
|
223
|
+
def open_flickr
|
224
|
+
Net::HTTP::Proxy(FlickrawOptions[:proxy_host], FlickrawOptions[:proxy_port], FlickrawOptions[:proxy_user], FlickrawOptions[:proxy_password]).start(FLICKR_HOST) {|http|
|
225
|
+
http.read_timeout = FlickrawOptions[:timeout] if FlickrawOptions[:timeout]
|
226
|
+
yield http
|
227
|
+
}
|
228
|
+
end
|
216
229
|
end
|
217
230
|
|
218
231
|
class << self
|
@@ -233,7 +246,7 @@ module FlickRaw
|
|
233
246
|
|
234
247
|
# Returns the signature of hsh. This is meant to be passed in the _api_sig_ parameter.
|
235
248
|
def api_sig(hsh)
|
236
|
-
Digest::MD5.hexdigest(FlickRaw.shared_secret + hsh.sort{|a, b| a[0].to_s <=> b[0].to_s }.flatten.join)
|
249
|
+
Digest::MD5.hexdigest(FlickRaw.shared_secret + hsh.sort{|a, b| a[0].to_s <=> b[0].to_s }.flatten.join)
|
237
250
|
end
|
238
251
|
end
|
239
252
|
end
|
@@ -243,5 +256,7 @@ end
|
|
243
256
|
#
|
244
257
|
# recent_photos = flickr.photos.getRecent
|
245
258
|
# puts recent_photos[0].title
|
246
|
-
def flickr; $flickraw end
|
247
|
-
|
259
|
+
def flickr; $flickraw ||= FlickRaw::Flickr.new end
|
260
|
+
|
261
|
+
# Load the methods if the option lazyload is not specified
|
262
|
+
flickr if not FlickrawOptions[:lazyload]
|
data/rakefile
CHANGED
@@ -4,7 +4,7 @@ require 'rake/gempackagetask'
|
|
4
4
|
require 'rake/testtask'
|
5
5
|
|
6
6
|
require 'lib/flickraw'
|
7
|
-
require 'flickraw_rdoc'
|
7
|
+
require 'flickraw_rdoc' if RUBY_VERSION >= "1.9"
|
8
8
|
|
9
9
|
PKG_FILES = FileList["lib/flickraw.rb", "flickraw_rdoc.rb", "LICENSE", "README.rdoc", "rakefile", "examples/*.rb", "test/*.rb"].to_a
|
10
10
|
|
@@ -31,6 +31,7 @@ end
|
|
31
31
|
|
32
32
|
Rake::TestTask.new
|
33
33
|
|
34
|
+
desc "Create a gemspec file"
|
34
35
|
task :spec do
|
35
36
|
spec_clone = spec.clone
|
36
37
|
spec_clone.test_files = nil
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flickraw
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 0.7.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mael Clerambault
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-08-08 00:00:00 +02:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|