hub.rb
2.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
require File.dirname(__FILE__) + '/../../tweeter_stream/lib/twurl'
require File.dirname(__FILE__) + '/../../facebook_stream/lib_facebook_stream'
class CommunityHubPlugin::Hub < Folder
settings_items :proxy_url, :type => :string, :default => 'http://161.148.1.167:312' # 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 twitter_service
Twurl::Stream.run(self, nil, hashtags_twitter, File.dirname(__FILE__) + '/../../tweeter_stream/config/twurlrc', proxy_url)
end
def facebook_service
facebook_comments(self, nil, facebook_page_id, facebook_pooling_time, facebook_access_token, proxy_url)
end
def self.start_listen
hubs = {}
loop do
puts "searching for hubs"
CommunityHubPlugin::Hub.all.each do |hub|
hub_conf = hubs[hub.id]
if hub_conf.nil? || hub_conf[:hub].updated_at < hub.updated_at
hub_conf[:threads].each {|t| t.terminate} if hub_conf
puts "hub #{hub.id} found!!!!!!"
threads = []
threads << Thread.new { hub.twitter_service } if hub.twitter_enabled
threads << Thread.new { hub.facebook_service } if hub.facebook_enabled
hubs[hub.id] = {:threads => threads, :hub => hub}
end
end
sleep(5)
end
end
def view_page
"content_viewer/hub.rhtml"
end
end