tumblr-fu 0.1.0.1 → 0.1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/tumblr.rb +43 -3
- metadata +2 -2
data/lib/tumblr.rb
CHANGED
@@ -10,14 +10,14 @@ module Tumblr
|
|
10
10
|
oauth_token = opts.delete(:oauth_token)
|
11
11
|
oauth_token_secret = opts.delete(:oauth_token_secret)
|
12
12
|
@consumer = OAuth::Consumer.new(@consumer_key, consumer_secret,
|
13
|
-
|
13
|
+
{:site => "http://www.tumblr.com/"})
|
14
14
|
token_hash = {:oauth_token => oauth_token,
|
15
15
|
:oauth_token_secret => oauth_token_secret}
|
16
16
|
@access_token = OAuth::AccessToken.from_hash(@consumer, token_hash)
|
17
17
|
end
|
18
18
|
|
19
19
|
def info(hostname)
|
20
|
-
JSON.parse
|
20
|
+
JSON.parse api_key_get(hostname, 'info')
|
21
21
|
end
|
22
22
|
|
23
23
|
def followers(hostname)
|
@@ -25,7 +25,47 @@ module Tumblr
|
|
25
25
|
JSON.parse(response.body)
|
26
26
|
end
|
27
27
|
|
28
|
-
|
28
|
+
def posts_page(hostname, opts = {})
|
29
|
+
defaults = {:offset => 0, :limit => 20}
|
30
|
+
opts = defaults.merge(opts)
|
31
|
+
response = api_key_get(hostname, 'posts', opts)
|
32
|
+
JSON.parse(response)
|
33
|
+
end
|
34
|
+
|
35
|
+
def post_pages(hostname, opts = {})
|
36
|
+
page_limit = opts.delete(:number_of_pages).to_i
|
37
|
+
limit = opts.delete(:per_page) || 20
|
38
|
+
offset = 0
|
39
|
+
result = posts_page(hostname, opts.merge(:offset => offset,
|
40
|
+
:limit => limit))
|
41
|
+
total = result['response']['total_posts']
|
42
|
+
total_pages = (total.to_f / limit.to_f).ceil
|
43
|
+
page_number = 1
|
44
|
+
yield({:result => result,
|
45
|
+
:offset => offset,
|
46
|
+
:page_number => page_number,
|
47
|
+
:per_page => limit})
|
48
|
+
if total_pages > 1
|
49
|
+
while(page_number <= total_pages) do
|
50
|
+
break if page_limit > 0 && page_number == page_limit
|
51
|
+
offset = (offset + limit)
|
52
|
+
result = posts_page(hostname, opts.merge(:offset => offset,
|
53
|
+
:limit => limit))
|
54
|
+
yield({:result => result,
|
55
|
+
:offset => offset,
|
56
|
+
:page_number => page_number,
|
57
|
+
:per_page => limit})
|
58
|
+
page_number += 1
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def api_key_get(hostname, path, params = {})
|
64
|
+
params[:api_key] ||= @consumer_key
|
65
|
+
query = URI.escape(params.collect{|k,v| "#{k}=#{v}"}.join('&'))
|
66
|
+
uri = "http://api.tumblr.com/v2/blog/#{hostname}/#{path}?#{query}"
|
67
|
+
open(uri).read
|
68
|
+
end
|
29
69
|
|
30
70
|
end
|
31
71
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tumblr-fu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.0.
|
4
|
+
version: 0.1.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-12-
|
12
|
+
date: 2012-12-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: oauth
|