Module: TweetSanitizer

Defined in:
lib/tweet_sanitizer.rb,
lib/tweet_sanitizer/version.rb,
lib/tweet_sanitizer/twitter_extension.rb

Defined Under Namespace

Modules: TwitterExtension

Constant Summary collapse

VERSION =
"0.1.0"

Class Method Summary collapse

Class Method Details

.expand_urls_text(tweet) ⇒ String

Parameters:

  • tweet (Twitter:Tweet)

Returns:

  • (String)


17
18
19
20
21
22
23
24
25
26
# File 'lib/tweet_sanitizer.rb', line 17

def self.expand_urls_text(tweet)
  text = tweet_full_text(tweet)
  return text unless tweet.uris?

  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

.remove_media_urls_in_tweet(tweet, text) ⇒ String

Parameters:

  • tweet (Twitter:Tweet)
  • text (String)

Returns:

  • (String)


39
40
41
42
43
44
45
46
# File 'lib/tweet_sanitizer.rb', line 39

def self.remove_media_urls_in_tweet(tweet, text)
  return text unless tweet.media?

  tweet.media.each_with_object(text.dup) do |media, t|
    t.gsub!(media.url, "")
    t.strip!
  end
end

.sanitize(tweet) ⇒ String

Parameters:

  • tweet (Twitter:Tweet)

Returns:

  • (String)


8
9
10
11
12
13
# File 'lib/tweet_sanitizer.rb', line 8

def self.sanitize(tweet)
  text = expand_urls_text(tweet)
  text = remove_media_urls_in_tweet(tweet, text)
  text = CGI.unescapeHTML(text)
  text
end

.tweet_full_text(tweet) ⇒ String

Returns ‘full_text` attribute if exist.

Parameters:

  • tweet (Twitter:Tweet)

Returns:

  • (String)

    ‘full_text` attribute if exist



30
31
32
33
34
# File 'lib/tweet_sanitizer.rb', line 30

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