diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index 4331d546a..66ba0e26b 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -178,11 +178,10 @@ module ApplicationHelper
end
message = process_links(message)
- message = process_youtube(message)
+ message = process_youtube(message, options[:youtube_maps])
message = process_vimeo(message, options[:vimeo_maps])
message = process_autolinks(message)
message = process_emphasis(message)
- message = process_youtube_again(message, options[:youtube_maps])
if options[:newlines]
message.gsub!(/\n+/, '
')
@@ -217,11 +216,16 @@ module ApplicationHelper
return message
end
- def process_youtube(message)
- message.gsub!(/( |^)(http:\/\/)?www\.youtube\.com\/watch[^ ]*v=([A-Za-z0-9_]+)(&[^ ]*|)/) do |m|
- res = "#{$1}youtube.com::#{$3}"
- res.gsub!(/(\*|_)/) { |m| "\\#{$1}" }
- res
+ def process_youtube(message, youtube_maps)
+ regex = /( |^)(http:\/\/)?www\.youtube\.com\/watch[^ ]*v=([A-Za-z0-9_\-]+)(&[^ ]*|)/
+ while youtube = message.match(regex)
+ video_id = youtube[3]
+ if youtube_maps && youtube_maps[video_id]
+ title = h(CGI::unescape(youtube_maps[video_id]))
+ else
+ title = I18n.t 'application.helper.video_title.unknown'
+ end
+ message.gsub!(youtube[0], 'Youtube: ' + title + '')
end
return message
end
@@ -255,26 +259,12 @@ module ApplicationHelper
return message
end
- def process_youtube_again(message, youtube_maps)
- while youtube = message.match(/youtube\.com::([A-Za-z0-9_\\\-]+)/)
- video_id = youtube[1]
- if youtube_maps && youtube_maps[video_id]
- title = h(CGI::unescape(youtube_maps[video_id]))
- else
- title = I18n.t 'application.helper.video_title.unknown'
- end
- message.gsub!('youtube.com::'+video_id, 'Youtube: ' + title + '')
- end
- return message
- end
-
-
def process_vimeo(message, vimeo_maps)
regex = /https?:\/\/(?:w{3}\.)?vimeo.com\/(\d{6,})/
while vimeo = message.match(regex)
video_id = vimeo[1]
if vimeo_maps && vimeo_maps[video_id]
- title = vimeo_maps[video_id]
+ title = h(CGI::unescape(vimeo_maps[video_id]))
else
title = I18n.t 'application.helper.video_title.unknown'
end