Hopefully make youtube_titles a little less ridiculous

This commit is contained in:
Raphael Sofaer 2011-07-30 22:24:27 -07:00
parent d0ff24fef7
commit 983d4e5598
2 changed files with 5 additions and 3 deletions

View file

@ -21,7 +21,6 @@ class StatusMessage < Post
validate :message_or_photos_present?
attr_accessible :text
serialize :youtube_titles, Hash
after_create :create_mentions

View file

@ -19,13 +19,16 @@ module YoutubeTitles
end
def get_youtube_title text
self.youtube_titles = {}
youtube_match = text.enum_for(:scan, YOUTUBE_ID_REGEX).map { Regexp.last_match }
return if youtube_match.empty?
self.youtube_titles ||= {}
matches = {}
youtube_match.each do |match_data|
self.youtube_titles[match_data[1]] = CGI::escape(youtube_title_for(match_data[1]))
matches[match_data[1]] = CGI::escape(youtube_title_for(match_data[1]))
end
self.youtube_titles = matches unless matches.empty?
end
YOUTUBE_ID_REGEX = /(?:https?:\/\/)(?:youtu\.be\/|(?:[a-z]{2,3}\.)?youtube\.com\/watch(?:\?|#!|.+&|.+&amp;)v=)([\w-]{11})(?:\S*(#[^ ]+)|\S+)?/im unless defined? YOUTUBE_ID_REGEX