class FBScrape::Comment
Attributes
created_at[RW]
from_id[RW]
from_name[RW]
id[RW]
message[RW]
page_id[RW]
replies[RW]
Public Class Methods
new(payload, access_token=nil, page_id=nil)
click to toggle source
# File lib/fb_scrape/comment.rb, line 7 def initialize(payload, access_token=nil, page_id=nil) @replies = [] @access_token = access_token @page_id = page_id load_from_payload payload end
Public Instance Methods
has_more_replies?()
click to toggle source
# File lib/fb_scrape/comment.rb, line 24 def has_more_replies? @page_info && next_cursor end
is_page_response?()
click to toggle source
# File lib/fb_scrape/comment.rb, line 14 def is_page_response? @page_id == @from_id end
load_all_replies(limit=nil)
click to toggle source
# File lib/fb_scrape/comment.rb, line 28 def load_all_replies(limit=nil) while has_more_replies? && is_below_limit?(limit) do load_more_replies end end
load_replies(access_token=nil)
click to toggle source
# File lib/fb_scrape/comment.rb, line 18 def load_replies access_token=nil @access_token = access_token if access_token url = "https://graph.facebook.com/v#{FBScrape::GRAPH_VERSION}/#{@id}/comments?access_token=#{@access_token}" load_from_url url end
to_json(*args)
click to toggle source
# File lib/fb_scrape/comment.rb, line 34 def to_json(*args) JSON.pretty_generate({ id: @id, created_at: @created_at, from_name: @from_name, from_id: @from_id, page_id: @page_id, message: @message }) end
Private Instance Methods
is_below_limit?(limit)
click to toggle source
# File lib/fb_scrape/comment.rb, line 47 def is_below_limit?(limit) is_below_limit = limit.nil? || @replies.length < limit end
load_from_payload(payload)
click to toggle source
# File lib/fb_scrape/comment.rb, line 77 def load_from_payload payload if payload @id = payload['id'] @created_at = payload['created_time'] @message = payload['message'] if payload['from'] @from_name = payload['from']['name'] @from_id = payload['from']['id'] end end end
load_from_url(url)
click to toggle source
# File lib/fb_scrape/comment.rb, line 61 def load_from_url url resp = HTTParty.get(url) case resp.code when 200 response = JSON.parse(resp.body) @replies = @replies.concat(response["data"].collect{ |c| FBScrape::Comment.new(c, @access_token, @page_id) }) @page_info = response["paging"] when 400 response = JSON.parse(resp.body) error = response["error"]["message"] raise ArgumentError.new(error) end end
load_more_replies()
click to toggle source
# File lib/fb_scrape/comment.rb, line 56 def load_more_replies url = "https://graph.facebook.com/v#{FBScrape::GRAPH_VERSION}/#{@id}/comments?access_token=#{@access_token}&limit=25&after=next_cursor" load_from_url url end
next_cursor()
click to toggle source
# File lib/fb_scrape/comment.rb, line 52 def next_cursor @page_info["cursors"]["next"] end