lib/tweet_sanitizer.rb in tweet_sanitizer-0.1.1 vs lib/tweet_sanitizer.rb in tweet_sanitizer-0.2.0
- old
+ new
@@ -1,25 +1,33 @@
require "twitter"
require "tweet_sanitizer/version"
require "tweet_sanitizer/twitter_extension"
module TweetSanitizer
+ # Sanitize tweet
# @param tweet [Twitter:Tweet]
+ # @param use_retweeted_tweet [Boolean] Whether use original retweeted tweet if exists
+ # @param expand_url [Boolean] Whether expand url in tweet (e.g. `t.co` url -> original url)
+ # @param remove_media_url [Boolean] Whether remove media url in tweet
+ # @param unescape [Boolean] Whether unescape in tweet (e.g. `(> <)` -> `(> <)`)
# @return [String]
- def self.sanitize(tweet)
+ def self.sanitize(tweet, use_retweeted_tweet: true, expand_url: true, remove_media_url: true, unescape: true)
# Original RT status is exists in retweeted_status
- tweet = Twitter::Tweet.new(tweet.attrs[:retweeted_status]) if tweet.attrs[:retweeted_status]
+ if use_retweeted_tweet && tweet.attrs[:retweeted_status]
+ tweet = Twitter::Tweet.new(tweet.attrs[:retweeted_status])
+ end
- text = expand_urls_text(tweet)
- text = remove_media_urls_in_tweet(tweet, text)
- text = CGI.unescapeHTML(text)
+ text = tweet_full_text(tweet)
+ text = expand_urls_text(tweet, text) if expand_url
+ text = remove_media_urls_in_tweet(tweet, text) if remove_media_url
+ text = CGI.unescapeHTML(text) if unescape
text
end
# @param tweet [Twitter:Tweet]
+ # @param text [String]
# @return [String]
- def self.expand_urls_text(tweet)
- text = tweet_full_text(tweet)
+ def self.expand_urls_text(tweet, text)
return text unless tweet.uris?
tweet.uris.reverse.each_with_object(text.dup) do |uri, expanded|
pos1 = uri.indices[0]
pos2 = uri.indices[1]