lib/tweet_sanitizer.rb in tweet_sanitizer-0.1.0.beta1 vs lib/tweet_sanitizer.rb in tweet_sanitizer-0.1.0

- old
+ new

@@ -1,7 +1,8 @@ -require "tweet_sanitizer/version" require "twitter" +require "tweet_sanitizer/version" +require "tweet_sanitizer/twitter_extension" module TweetSanitizer # @param tweet [Twitter:Tweet] # @return [String] def self.sanitize(tweet) @@ -12,27 +13,34 @@ end # @param tweet [Twitter:Tweet] # @return [String] def self.expand_urls_text(tweet) - text = tweet.text.dup + text = tweet_full_text(tweet) return text unless tweet.uris? - tweet.uris.reverse.each_with_object(text) do |uri, expanded| + tweet.uris.reverse.each_with_object(text.dup) do |uri, expanded| pos1 = uri.indices[0] pos2 = uri.indices[1] expanded[pos1, pos2-pos1] = uri.expanded_url end end # @param tweet [Twitter:Tweet] + # @return [String] `full_text` attribute if exist + def self.tweet_full_text(tweet) + # NOTE: Twitter::Tweet#full_text doesn't returns full_text attribute + # https://github.com/sferik/twitter/blob/v6.1.0/lib/twitter/tweet.rb#L37-L44 + tweet.attrs[:full_text] || tweet.text + end + + # @param tweet [Twitter:Tweet] # @param text [String] # @return [String] def self.remove_media_urls_in_tweet(tweet, text) - text = text.dup return text unless tweet.media? - tweet.media.each_with_object(text) do |media, t| + tweet.media.each_with_object(text.dup) do |media, t| t.gsub!(media.url, "") t.strip! end end end