Commit 714ead6ae18ef6b4d3dde474c54354ea008f0bbd

Authored by Francisco Marcelo de Araújo Lima Júnior
2 parents d4ce2595 01ceca9c

Merge branch 'AI3074-community_dashboard' into rails3_community_dashboard

plugins/community_hub/facebook_stream/codfish_facebook_api.rb 0 → 100644
@@ -0,0 +1,86 @@ @@ -0,0 +1,86 @@
  1 +require 'rubygems'
  2 +require 'open-uri'
  3 +require 'json'
  4 +
  5 +token = 'CAAD8cd4tMVkBAO3sh2DrzwZCDfeQq9ZAvTz7Jz24ZC26KtMfBoljqaXhD2vBV1zpP0bjrpxXUBzJvKKcFzOm6rMG9Sok7iNVUaxt5iwr7dfMqCvHpMboKpqrqgeLrfCH5ITVTAdezA6ZBSr9iOJrqyCSOYfui0zTmbXJ3FqtshwNRrRy4NPH'
  6 +hashtag = "#nba"
  7 +pooling_time = 10
  8 +
  9 +
  10 +#Aviso 12/04/2014
  11 +#token que só deverá expirar em 59 dias
  12 +#@graph = Koala::Facebook::API.new('CAAD8cd4tMVkBAO3sh2DrzwZCDfeQq9ZAvTz7Jz24ZC26KtMfBoljqaXhD2vBV1zpP0bjrpxXUBzJvKKcFzOm6rMG9Sok7iNVUaxt5iwr7dfMqCvHpMboKpqrqgeLrfCH5ITVTAdezA6ZBSr9iOJrqyCSOYfui0zTmbXJ3FqtshwNRrRy4NPH')
  13 +# https://graph.facebook.com/v1.0/search?q=%23nba&type=post&access_token=CAAD8cd4tMVkBAO3sh2DrzwZCDfeQq9ZAvTz7Jz24ZC26KtMfBoljqaXhD2vBV1zpP0bjrpxXUBzJvKKcFzOm6rMG9Sok7iNVUaxt5iwr7dfMqCvHpMboKpqrqgeLrfCH5ITVTAdezA6ZBSr9iOJrqyCSOYfui0zTmbXJ3FqtshwNRrRy4NPH
  14 +
  15 +def not_blank(v)
  16 + if v == nil || v == ""
  17 + false
  18 + else
  19 + true
  20 + end
  21 +end
  22 +
  23 +if hashtag[0]='#'
  24 + hashtag = hashtag[1,hashtag.length-1]
  25 +end
  26 +
  27 +extractedComments = []
  28 +initialComments = []
  29 +firstTime = true
  30 +read = 1
  31 +
  32 +while true
  33 + file = open("https://graph.facebook.com/v1.0/search?q=%23#{hashtag}&type=post&access_token=#{token}")
  34 + itens = JSON.parse(file.read)['data']
  35 + mostRecent = ""
  36 + itens.each{|i|
  37 + from = ""
  38 + message = ""
  39 + if not_blank(i['from']['name'])
  40 + from = i['from']['name']
  41 + if not_blank(i['message'])
  42 + message += i['message']
  43 + end
  44 + if not_blank(message)
  45 + if mostRecent == "" or mostRecent < i["created_time"]
  46 + mostRecent = i["created_time"]
  47 + end
  48 +
  49 + extractedComments.push("#{from} said: #{message}")
  50 + # puts "#{from} said: #{message}"
  51 + end
  52 + end
  53 + }
  54 +
  55 + extractedComments = extractedComments.uniq
  56 + if firstTime
  57 + initialComments = extractedComments.clone
  58 + firstTime = false
  59 + end
  60 +
  61 +# extractedComments.each{|comment|
  62 +# puts comment
  63 +# }
  64 +
  65 +# extractedComments.each{|comment|
  66 +# puts comment
  67 +# }
  68 +
  69 +
  70 + newComments = extractedComments - initialComments
  71 + newComments = newComments.uniq
  72 + initialComments += newComments
  73 + initialComments = initialComments.uniq
  74 + newComments.each{|comment|
  75 + puts comment
  76 + }
  77 + puts "****************************************************************************************************************"
  78 + puts "most recent post at #{mostRecent}"
  79 + puts "Read: #{read} newComments: #{newComments.length} initialComments: #{initialComments.length} extractedComments: #{extractedComments.length} *******"
  80 +
  81 + read+=1
  82 + sleep(pooling_time)
  83 +end
  84 +
  85 +
  86 +
plugins/community_hub/facebook_stream/facebook_stream.rb
@@ -5,6 +5,7 @@ require &#39;json&#39; @@ -5,6 +5,7 @@ require &#39;json&#39;
5 #Aviso 12/04/2014 5 #Aviso 12/04/2014
6 #token que só deverá expirar em 59 dias 6 #token que só deverá expirar em 59 dias
7 @graph = Koala::Facebook::API.new('CAAD8cd4tMVkBAO3sh2DrzwZCDfeQq9ZAvTz7Jz24ZC26KtMfBoljqaXhD2vBV1zpP0bjrpxXUBzJvKKcFzOm6rMG9Sok7iNVUaxt5iwr7dfMqCvHpMboKpqrqgeLrfCH5ITVTAdezA6ZBSr9iOJrqyCSOYfui0zTmbXJ3FqtshwNRrRy4NPH') 7 @graph = Koala::Facebook::API.new('CAAD8cd4tMVkBAO3sh2DrzwZCDfeQq9ZAvTz7Jz24ZC26KtMfBoljqaXhD2vBV1zpP0bjrpxXUBzJvKKcFzOm6rMG9Sok7iNVUaxt5iwr7dfMqCvHpMboKpqrqgeLrfCH5ITVTAdezA6ZBSr9iOJrqyCSOYfui0zTmbXJ3FqtshwNRrRy4NPH')
  8 +# https://graph.facebook.com/v1.0/search?q=%23dilma&type=post&access_token=CAAD8cd4tMVkBAO3sh2DrzwZCDfeQq9ZAvTz7Jz24ZC26KtMfBoljqaXhD2vBV1zpP0bjrpxXUBzJvKKcFzOm6rMG9Sok7iNVUaxt5iwr7dfMqCvHpMboKpqrqgeLrfCH5ITVTAdezA6ZBSr9iOJrqyCSOYfui0zTmbXJ3FqtshwNRrRy4NPH
8 9
9 #feed = @graph.get_connections("participabr", "posts") 10 #feed = @graph.get_connections("participabr", "posts")
10 11
plugins/community_hub/facebook_stream/lib_facebook_koala_stream.rb 0 → 100644
@@ -0,0 +1,48 @@ @@ -0,0 +1,48 @@
  1 +require 'rubygems'
  2 +require 'koala'
  3 +require 'json'
  4 +
  5 +#Warning!!! Warning!!! Warning!!! Warning!!! Warning!!! Warning!!! Warning!!! Warning!!!
  6 +#token will expire at 12/04/2014 (Brazilian date format) + 59 days
  7 +#'CAAD8cd4tMVkBAO3sh2DrzwZCDfeQq9ZAvTz7Jz24ZC26KtMfBoljqaXhD2vBV1zpP0bjrpxXUBzJvKKcFzOm6rMG9Sok7iNVUaxt5iwr7dfMqCvHpMboKpqrqgeLrfCH5ITVTAdezA6ZBSr9iOJrqyCSOYfui0zTmbXJ3FqtshwNRrRy4NPH'
  8 +# BACKUP TOKEN 'CAAEhsewl0ZAcBAHhipXszZCURSwWLmgvceDbs9mB5baJdLriFxYMEzywmF2fvZBuThuA2Mm7QF8wPd3E6R5pVqVEnC2VhcBb4VrfAnkZC73ZC5g1NRUnKZCB2e6CaRiUBDatR2nf505PeKp7Aj5XxvTdfSqdZCsXxQFYZApPNSUUgkUWm6HwL4rp21MRJXb612sZD'
  9 +
  10 +def facebook_comments(hub, author_id, page_id, pooling_time, token, proxy_url)
  11 + pooling_time ||= 5
  12 + Koala.http_service.http_options = { :proxy => proxy_url } unless proxy_url.blank?
  13 +
  14 + @graph = Koala::Facebook::API.new(token)
  15 + initialComments = []
  16 + firstTime = true
  17 + while true
  18 + feed = @graph.get_connections(page_id, "posts")
  19 + array = []
  20 + extractedComments = []
  21 + feed.each {|f|
  22 + if f['comments'] != nil && f['comments']['data'] != nil
  23 + array.push(f['comments']['data'])
  24 + end
  25 + }
  26 + extractedComments = array.flatten.uniq
  27 + if firstTime
  28 + initialComments = extractedComments.clone
  29 + firstTime = false
  30 + end
  31 + newComments = extractedComments - initialComments
  32 + newComments = newComments.uniq
  33 + initialComments += newComments
  34 + initialComments = initialComments.uniq
  35 + newComments.each{|comment|
  36 + puts "#{comment['from']['name']} " + _("said") + ": #{comment['message']}"
  37 + noosferoComment = Comment.new
  38 + noosferoComment.title = 'hub-message-facebook'
  39 + noosferoComment.source = hub
  40 + noosferoComment.body = comment['message']
  41 + noosferoComment.author_id = author_id
  42 + noosferoComment.name = comment['from']['name']
  43 + noosferoComment.email = 'admin@localhost.local'
  44 + noosferoComment.save!
  45 + }
  46 + sleep(pooling_time)
  47 + end
  48 +end
plugins/community_hub/facebook_stream/lib_facebook_stream.rb
1 require 'rubygems' 1 require 'rubygems'
2 -require 'koala' 2 +require 'open-uri'
3 require 'json' 3 require 'json'
4 4
5 -#Warning!!! Warning!!! Warning!!! Warning!!! Warning!!! Warning!!! Warning!!! Warning!!!  
6 -#token will expire at 12/04/2014 (Brazilian date format) + 59 days  
7 -#'CAAD8cd4tMVkBAO3sh2DrzwZCDfeQq9ZAvTz7Jz24ZC26KtMfBoljqaXhD2vBV1zpP0bjrpxXUBzJvKKcFzOm6rMG9Sok7iNVUaxt5iwr7dfMqCvHpMboKpqrqgeLrfCH5ITVTAdezA6ZBSr9iOJrqyCSOYfui0zTmbXJ3FqtshwNRrRy4NPH'  
8 -# BACKUP TOKEN 'CAAEhsewl0ZAcBAHhipXszZCURSwWLmgvceDbs9mB5baJdLriFxYMEzywmF2fvZBuThuA2Mm7QF8wPd3E6R5pVqVEnC2VhcBb4VrfAnkZC73ZC5g1NRUnKZCB2e6CaRiUBDatR2nf505PeKp7Aj5XxvTdfSqdZCsXxQFYZApPNSUUgkUWm6HwL4rp21MRJXb612sZD'  
9 5
10 -def facebook_comments(hub, author_id, page_id, pooling_time, token, proxy_url)  
11 - pooling_time ||= 5  
12 - Koala.http_service.http_options = { :proxy => proxy_url } unless proxy_url.blank? 6 + def not_blank(v)
  7 + if v == nil || v == ""
  8 + false
  9 + else
  10 + true
  11 + end
  12 + end
  13 +
  14 +
  15 +def facebook_comments(hub, author_id, hashtag, pooling_time, token, proxy_url)
  16 +
  17 + puts "entrou"
  18 +
  19 + pooling_time ||= 10
  20 + token ||= 'CAAD8cd4tMVkBAO3sh2DrzwZCDfeQq9ZAvTz7Jz24ZC26KtMfBoljqaXhD2vBV1zpP0bjrpxXUBzJvKKcFzOm6rMG9Sok7iNVUaxt5iwr7dfMqCvHpMboKpqrqgeLrfCH5ITVTAdezA6ZBSr9iOJrqyCSOYfui0zTmbXJ3FqtshwNRrRy4NPH'
  21 + hashtag ||= "#nba"
  22 +
  23 +
  24 + #Aviso 12/04/2014
  25 + #token que só deverá expirar em 59 dias
  26 + #@graph = Koala::Facebook::API.new('CAAD8cd4tMVkBAO3sh2DrzwZCDfeQq9ZAvTz7Jz24ZC26KtMfBoljqaXhD2vBV1zpP0bjrpxXUBzJvKKcFzOm6rMG9Sok7iNVUaxt5iwr7dfMqCvHpMboKpqrqgeLrfCH5ITVTAdezA6ZBSr9iOJrqyCSOYfui0zTmbXJ3FqtshwNRrRy4NPH')
  27 + # https://graph.facebook.com/v1.0/search?q=%23nba&type=post&access_token=CAAD8cd4tMVkBAO3sh2DrzwZCDfeQq9ZAvTz7Jz24ZC26KtMfBoljqaXhD2vBV1zpP0bjrpxXUBzJvKKcFzOm6rMG9Sok7iNVUaxt5iwr7dfMqCvHpMboKpqrqgeLrfCH5ITVTAdezA6ZBSr9iOJrqyCSOYfui0zTmbXJ3FqtshwNRrRy4NPH
13 28
14 - @graph = Koala::Facebook::API.new(token) 29 + #removes extra #
  30 + if hashtag[0]='#'
  31 + hashtag = hashtag[1,hashtag.length-1]
  32 + end
  33 +
  34 + extractedComments = []
15 initialComments = [] 35 initialComments = []
16 firstTime = true 36 firstTime = true
  37 + read = 1
  38 +
17 while true 39 while true
18 - feed = @graph.get_connections(page_id, "posts")  
19 - array = []  
20 - extractedComments = []  
21 - feed.each {|f|  
22 - if f['comments'] != nil && f['comments']['data'] != nil  
23 - array.push(f['comments']['data'])  
24 - end 40 + file = open("https://graph.facebook.com/v1.0/search?q=%23#{hashtag}&type=post&access_token=#{token}")
  41 + itens = JSON.parse(file.read)['data']
  42 + mostRecent = ""
  43 + itens.each{|i|
  44 + from = ""
  45 + message = ""
  46 + if not_blank(i['from']['name'])
  47 + from = i['from']['name']
  48 + if not_blank(i['message'])
  49 + message += i['message']
  50 + end
  51 + if not_blank(message)
  52 + if mostRecent == "" or mostRecent < i["created_time"]
  53 + mostRecent = i["created_time"]
  54 + end
  55 +
  56 + extractedComments.push("#{from} said: #{message}")
  57 + # puts "#{from} said: #{message}"
  58 + end
  59 + end
25 } 60 }
26 - extractedComments = array.flatten.uniq 61 +
  62 + extractedComments = extractedComments.uniq
27 if firstTime 63 if firstTime
28 initialComments = extractedComments.clone 64 initialComments = extractedComments.clone
29 firstTime = false 65 firstTime = false
30 end 66 end
  67 +
  68 + # extractedComments.each{|comment|
  69 + # puts comment
  70 + # }
  71 +
  72 + # extractedComments.each{|comment|
  73 + # puts comment
  74 + # }
  75 +
31 newComments = extractedComments - initialComments 76 newComments = extractedComments - initialComments
32 newComments = newComments.uniq 77 newComments = newComments.uniq
33 initialComments += newComments 78 initialComments += newComments
34 initialComments = initialComments.uniq 79 initialComments = initialComments.uniq
35 newComments.each{|comment| 80 newComments.each{|comment|
  81 + puts comment
36 puts "#{comment['from']['name']} " + _("said") + ": #{comment['message']}" 82 puts "#{comment['from']['name']} " + _("said") + ": #{comment['message']}"
37 noosferoComment = Comment.new 83 noosferoComment = Comment.new
38 noosferoComment.title = 'hub-message-facebook' 84 noosferoComment.title = 'hub-message-facebook'
39 - noosferoComment.source = hub 85 + noosferoComment.source = Article.last
  86 + #noosferoComment.source = hub
40 noosferoComment.body = comment['message'] 87 noosferoComment.body = comment['message']
41 noosferoComment.author_id = author_id 88 noosferoComment.author_id = author_id
42 noosferoComment.name = comment['from']['name'] 89 noosferoComment.name = comment['from']['name']
43 noosferoComment.email = 'admin@localhost.local' 90 noosferoComment.email = 'admin@localhost.local'
44 noosferoComment.save! 91 noosferoComment.save!
45 } 92 }
  93 + puts "****************************************************************************************************************"
  94 + puts "Read: #{read} last post #{mostRecent} newComments: #{newComments.length} initialComments: #{initialComments.length} extractedComments: #{extractedComments.length}"
  95 + read+=1
46 sleep(pooling_time) 96 sleep(pooling_time)
47 end 97 end
48 end 98 end
  99 +
  100 +
  101 +
  102 +facebook_comments(nil, 54, "nba", 5, nil, nil)
  103 +
  104 +
  105 +puts "ola"
49 \ No newline at end of file 106 \ No newline at end of file
plugins/community_hub/lib/community_hub_plugin/hub.rb
@@ -19,7 +19,7 @@ class CommunityHubPlugin::Hub &lt; Folder @@ -19,7 +19,7 @@ class CommunityHubPlugin::Hub &lt; Folder
19 settings_items :twitter_access_token, :type => :string, :default => "" 19 settings_items :twitter_access_token, :type => :string, :default => ""
20 settings_items :twitter_access_token_secret, :type => :string, :default => "" 20 settings_items :twitter_access_token_secret, :type => :string, :default => ""
21 settings_items :facebook_enabled, :type => :boolean, :default => false 21 settings_items :facebook_enabled, :type => :boolean, :default => false
22 - settings_items :facebook_page_id, :type => :string, :default => "" 22 + settings_items :facebook_hashtag, :type => :string, :default => ""
23 settings_items :facebook_pooling_time, :type => :integer, :default => 5 # Time in seconds 23 settings_items :facebook_pooling_time, :type => :integer, :default => 5 # Time in seconds
24 settings_items :facebook_access_token, :type => :string, :default => '' 24 settings_items :facebook_access_token, :type => :string, :default => ''
25 settings_items :pinned_messages, :type => Array, :default => [] 25 settings_items :pinned_messages, :type => Array, :default => []
plugins/community_hub/lib/community_hub_plugin/listener.rb
@@ -9,7 +9,7 @@ class CommunityHubPlugin::Listener @@ -9,7 +9,7 @@ class CommunityHubPlugin::Listener
9 end 9 end
10 10
11 def facebook_service(hub) 11 def facebook_service(hub)
12 - facebook_comments(hub, nil, hub.facebook_page_id, hub.facebook_pooling_time, hub.facebook_access_token, hub.proxy_url) 12 + facebook_comments(hub, nil, hub.facebook_hashtag, hub.facebook_pooling_time, hub.facebook_access_token, hub.proxy_url)
13 end 13 end
14 14
15 def run 15 def run
@@ -39,6 +39,7 @@ class CommunityHubPlugin::Listener @@ -39,6 +39,7 @@ class CommunityHubPlugin::Listener
39 end 39 end
40 40
41 def log(message) 41 def log(message)
  42 + #puts message
42 initialize_logger unless @initiated 43 initialize_logger unless @initiated
43 @initiated ||= true 44 @initiated ||= true
44 @logger << "[#{Time.now.strftime('%F %T %z')}] #{message}\n" 45 @logger << "[#{Time.now.strftime('%F %T %z')}] #{message}\n"
plugins/community_hub/public/style.css
@@ -245,7 +245,7 @@ @@ -245,7 +245,7 @@
245 border: 1px solid lightGray; 245 border: 1px solid lightGray;
246 border-top: 1px solid #96110D; 246 border-top: 1px solid #96110D;
247 border-bottom: 0px solid #FFFFFF; 247 border-bottom: 0px solid #FFFFFF;
248 - top: 1px; 248 + top: 3px;
249 float: left; 249 float: left;
250 font-weight: normal; 250 font-weight: normal;
251 margin-bottom: -1px; 251 margin-bottom: -1px;
@@ -259,14 +259,16 @@ z-index: 99; @@ -259,14 +259,16 @@ z-index: 99;
259 float: left; 259 float: left;
260 margin-right: 20px; 260 margin-right: 20px;
261 margin-left: 0px; 261 margin-left: 0px;
  262 + text-align: center;
262 } 263 }
263 264
264 #content .main-block .hub .mediation h1.mediation{ 265 #content .main-block .hub .mediation h1.mediation{
265 float: right; 266 float: right;
266 margin-right: 0px; 267 margin-right: 0px;
267 margin-left: 20px; 268 margin-left: 20px;
268 - top: 2px; 269 + top: 0px;
269 left: 2px; 270 left: 2px;
  271 + text-align: center;
270 } 272 }
271 273
272 #content .main-block .hub .live h1.mediation, 274 #content .main-block .hub .live h1.mediation,
@@ -378,7 +380,6 @@ z-index: 99; @@ -378,7 +380,6 @@ z-index: 99;
378 380
379 #content .hub .live.show .on-air, 381 #content .hub .live.show .on-air,
380 #content .hub .live.show .off-air{ 382 #content .hub .live.show .off-air{
381 -float: right;  
382 margin-right: 10px; 383 margin-right: 10px;
383 } 384 }
384 385
plugins/community_hub/views/cms/community_hub_plugin/_hub.html.erb
@@ -5,10 +5,10 @@ @@ -5,10 +5,10 @@
5 <%= required labelled_form_field(_('Title'), text_field(:article, 'name', :size => '64', :maxlength => 150)) %> 5 <%= required labelled_form_field(_('Title'), text_field(:article, 'name', :size => '64', :maxlength => 150)) %>
6 </div> 6 </div>
7 <div> 7 <div>
8 - <%= render :file => 'shared/tiny_mce' %>  
9 - <%= required labelled_form_field(_('Description'), text_area(:article, 'body', :style => 'width: 100%;', :class => 'mceEditor')) %> 8 + <%= required labelled_form_field(_('Description'), text_area(:article, 'body', :style => 'width: 99%;')) %>
10 </div> 9 </div>
11 <br /> 10 <br />
  11 +
12 <div> 12 <div>
13 <%= _('General Streaming Settings:') %> 13 <%= _('General Streaming Settings:') %>
14 </div> 14 </div>
@@ -18,20 +18,19 @@ @@ -18,20 +18,19 @@
18 </div> 18 </div>
19 <br /> 19 <br />
20 <%= check_box(:article, :twitter_enabled) %> <span><%= _("Turn on TWITTER") %></span> 20 <%= check_box(:article, :twitter_enabled) %> <span><%= _("Turn on TWITTER") %></span>
21 - <br />  
22 - <br /> 21 + <br /><br />
23 <span><%= required labelled_form_field(_('Twitter\'s Hashtags, comma separated words<br>(example: participa.br,participabr,arenanetmundial,netmundial'), text_field(:article, :twitter_hashtags)) %></span> 22 <span><%= required labelled_form_field(_('Twitter\'s Hashtags, comma separated words<br>(example: participa.br,participabr,arenanetmundial,netmundial'), text_field(:article, :twitter_hashtags)) %></span>
24 <br /> 23 <br />
  24 + <div>
  25 + <%= _('Facebook Settings:') %>
  26 + </div>
25 <br /> 27 <br />
26 - <span><%= required labelled_form_field(_('Twitter\'s consumer key'), text_field(:article, :twitter_consumer_key)) %></span>  
27 - <br />  
28 - <br />  
29 - <span><%= required labelled_form_field(_('Twitter\'s consumer secret'), text_field(:article, :twitter_consumer_secret)) %></span>  
30 - <br />  
31 - <br />  
32 - <span><%= required labelled_form_field(_('Twitter\'s access token'), text_field(:article, :twitter_access_token)) %></span>  
33 - <br /> 28 + <%= check_box(:article, :facebook_enabled) %> <span><%= _("Turn on FACEBOOK") %></span>
  29 + <br /><br />
  30 + <span><%= required labelled_form_field(_('Facebook\'s hashtag (example: #participabr)'), text_field(:article, :facebook_hashtag)) %></span>
34 <br /> 31 <br />
35 - <span><%= required labelled_form_field(_('Twitter\'s access token secret'), text_field(:article, :twitter_access_token_secret)) %></span> 32 + <span><%= required labelled_form_field(_('Facebook\'s access token'), text_field(:article, :facebook_access_token)) %></span>
  33 + <br />
  34 + <a href='https://smashballoon.com/custom-facebook-feed/access-token/' ><%= _('How to get a new access token?') %><a>
36 <br /> 35 <br />
37 -</div> 36 -</div>
  37 +</div>
38 \ No newline at end of file 38 \ No newline at end of file
plugins/community_hub/views/content_viewer/hub.rhtml
@@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@
11 <div id="left-tab" class="live content-tab show"> 11 <div id="left-tab" class="live content-tab show">
12 12
13 <h1 class="live"> 13 <h1 class="live">
14 - <span class="title"><%= @page.title %></span><span class="on-air"><%= _("Live") %></span> 14 + <span class="on-air"><%= _("Live") %></span>
15 </h1> 15 </h1>
16 16
17 <h1 class="mediation"> 17 <h1 class="mediation">
@@ -50,7 +50,7 @@ @@ -50,7 +50,7 @@
50 <div id="right-tab" class="mediation content-tab hide"> 50 <div id="right-tab" class="mediation content-tab hide">
51 51
52 <h1 class="live"> 52 <h1 class="live">
53 - <span class="title"><%= @page.title %></span><span class="on-air"><%= _("Live") %></span> 53 + <span class="on-air"><%= _("Live") %></span>
54 </h1> 54 </h1>
55 55
56 <h1 class="mediation"> 56 <h1 class="mediation">