Class: Tumblikes::Client
- Inherits:
-
Object
- Object
- Tumblikes::Client
- Defined in:
- lib/tumblikes/client.rb
Constant Summary collapse
- MAX_LIMIT_NUM =
20
Instance Method Summary collapse
- #image_urls(options = {}) ⇒ Object
-
#initialize(config) ⇒ Client
constructor
A new instance of Client.
- #liked_count ⇒ Object
Constructor Details
#initialize(config) ⇒ Client
Returns a new instance of Client.
7 8 9 10 11 12 13 14 |
# File 'lib/tumblikes/client.rb', line 7 def initialize(config) @client = Tumblr::Client.new( consumer_key: config[:consumer_key], consumer_secret: config[:consumer_secret], oauth_token: config[:access_token], oauth_token_secret: config[:access_token_secret] ) end |
Instance Method Details
#image_urls(options = {}) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/tumblikes/client.rb', line 20 def image_urls( = {}) offset = [:offset].to_i limit = [:limit].to_i fail 'LIMIT exceeded your LIKED_COUNT ' if limit > liked_count - offset request_num = ([liked_count - offset, limit].min / MAX_LIMIT_NUM).ceil image_chunks = (0..request_num).map do |req_num| liked_posts = @client.likes(limit: MAX_LIMIT_NUM, offset: offset + req_num * MAX_LIMIT_NUM).dig('liked_posts') photos = liked_posts.map { |post| post.dig('photos') }.flatten.compact photos.map { |photo| photo.dig('original_size', 'url') } end image_chunks.flatten end |
#liked_count ⇒ Object
16 17 18 |
# File 'lib/tumblikes/client.rb', line 16 def liked_count @_liked_count ||= @client.likes.dig('liked_count').to_i end |