hub.rb 2.48 KB
require File.dirname(__FILE__) + '/../../tweeter_stream/lib/twurl'
require File.dirname(__FILE__) + '/../../facebook_stream/lib_facebook_stream'

class CommunityHubPlugin::Hub < Folder

 @@twitter_thread_started = false #change to hash
 @@facebook_thread_started = false #change to hash

  settings_items :proxy_url, :type => :string, :default => 'http://161.148.1.167:3128' # Remember to use add the port, if needed!      
  settings_items :twitter_enabled, :type => :boolean, :default => false  
  settings_items :hashtags_twitter, :type => :string, :default => "participa.br,participabr,arenanetmundial,netmundial" 
  settings_items :facebook_enabled, :type => :boolean, :default => false
  settings_items :facebook_page_id, :type => :string, :default => "participabr"  
  settings_items :facebook_pooling_time, :type => :integer, :default => 5 # Time in seconds  
  settings_items :facebook_access_token,  :type => :string, :default => 'CAAD8cd4tMVkBAO3sh2DrzwZCDfeQq9ZAvTz7Jz24ZC26KtMfBoljqaXhD2vBV1zpP0bjrpxXUBzJvKKcFzOm6rMG9Sok7iNVUaxt5iwr7dfMqCvHpMboKpqrqgeLrfCH5ITVTAdezA6ZBSr9iOJrqyCSOYfui0zTmbXJ3FqtshwNRrRy4NPH'    
  settings_items :pinned_messages, :type => Array, :default => []
  settings_items :pinned_mediations, :type => Array, :default => []
  settings_items :mediators, :type => Array, :default => []

  before_create do |hub|
    hub.mediators = [hub.author.id]
  end
  
  def self.icon_name(article = nil)
    'community-hub'
  end

  def self.short_description
    _("Hub")
  end

  def self.description
    _('Defines a hub.')
  end

  def accept_comments?
    true
  end

  def self.twitter_service(hub, action)
      author_id = 54
      if action==:start 
        thread = Thread.new {
            Twurl::Stream.run(hub, author_id, hub.setting[:hashtags_twitter], File.dirname(__FILE__) + '/../../tweeter_stream/config/twurlrc', hub.setting[:proxy_url])
        } unless@@twitter_thread_started
       @@twitter_thread_started = true
      end
  end
  
  #Faraday.new(:proxy => { :uri => 'http://proxy.example.com', :user => 'foo', :password => 'bar' }) 
  def self.facebook_service(hub, action)
      author_id = 54
      if action==:start 
        thread = Thread.new {
              facebook_comments(hub, author_id, hub.setting[:facebook_page_id], hub.setting[:facebook_pooling_time], hub.setting[:facebook_access_token], hub.setting[:proxy_url])
       } unless@@facebook_thread_started
        @@facebook_thread_started = true
      end
  end
  
  def view_page
    "content_viewer/hub.rhtml"
  end
end