trabajo-afectivo/app/models/channel/driver/facebook.rb

57 lines
1.1 KiB
Ruby
Raw Normal View History

# Copyright (C) 2012-2015 Zammad Foundation, http://zammad-foundation.org/
require 'facebook'
2012-04-10 14:06:46 +00:00
2015-08-28 00:53:14 +00:00
class Channel::Driver::Facebook
2012-04-10 14:06:46 +00:00
2015-08-28 01:02:21 +00:00
def fetch (_adapter_options, channel)
@channel = channel
2015-07-17 14:57:10 +00:00
@facebook = Facebook.new( @channel[:options] )
@sync = @channel[:options][:sync]
Rails.logger.debug 'facebook fetch started'
fetch_feed
disconnect
Rails.logger.debug 'facebook fetch completed'
2012-04-10 14:06:46 +00:00
end
2014-06-22 07:00:09 +00:00
def send(article, _notification = false)
@channel = Channel.find_by( area: 'Facebook::Inbound', active: true )
2015-07-17 14:57:10 +00:00
@facebook = Facebook.new( @channel[:options] )
2015-12-18 10:47:05 +00:00
post = @facebook.from_article(article)
disconnect
2015-12-18 10:47:05 +00:00
post
end
2014-06-22 07:00:09 +00:00
def disconnect
@facebook.disconnect
2014-06-22 07:00:09 +00:00
end
private
def fetch_feed
return if !@sync[:group_id]
counter = 0
feed = @facebook.client.get_connections('me', 'feed')
2015-12-18 10:47:05 +00:00
feed.each { |feed_item|
break if @sync[:limit] && @sync[:limit] <= counter
2015-12-18 10:47:05 +00:00
post = @facebook.client.get_object( feed_item['id'] )
@facebook.to_group( post, @sync[:group_id] )
counter += 1
}
2012-04-10 14:06:46 +00:00
end
end