diff --git a/app/models/status_message.rb b/app/models/status_message.rb index e2a6959d7..fd460f245 100644 --- a/app/models/status_message.rb +++ b/app/models/status_message.rb @@ -21,7 +21,6 @@ class StatusMessage < Post validate :message_or_photos_present? attr_accessible :text - serialize :youtube_titles, Hash after_create :create_mentions diff --git a/lib/youtube_titles.rb b/lib/youtube_titles.rb index cf90f28b3..06fc6efa7 100644 --- a/lib/youtube_titles.rb +++ b/lib/youtube_titles.rb @@ -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(?:\?|#!|.+&|.+&)v=)([\w-]{11})(?:\S*(#[^ ]+)|\S+)?/im unless defined? YOUTUBE_ID_REGEX