tweet_sanitizer 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b1260735d1dce2e00d66d4817e292d2fee9f047b
4
- data.tar.gz: c0b26d8442c0a2c629a80f68c437c87562a6a0ee
3
+ metadata.gz: f81ed3decd1defa109db3cb5dcd3ff146b9d2377
4
+ data.tar.gz: f788cc11a47f4ccbc626846f3977ca6170ea99f0
5
5
  SHA512:
6
- metadata.gz: e1e79f701eb86fe751dd0f1df9de6853e2482de756acb27361798644e7dd5a07b7296e4d2d63bb654b2f17d9f5790a52852f94620b3a94108100e919b9b00ad0
7
- data.tar.gz: 22e8583b42b7e1b1dc94f7c87b74eeb939484c4ae31199ea91ab55d96cd92f447e3ddb6875b3e06ccec489eda210724fd65f990934ef60de02218fb36902a92d
6
+ metadata.gz: d76f6708fdb977de53aa3f00155d4292203ffaa730a9828ec5af244b5539b4fef23e39e195f945f911383fbe10d0a0825662179be6d71b51dae129e3d6aa4551
7
+ data.tar.gz: 365728cef1fe75877b00cff14e0a0ebbd0d088fecb1a0b51a3fa5654989ee5ce49867d3454b2c05f5a612754a63f8c2f3c972d85d5dac9e7356f20b9d4322aa1
@@ -1,5 +1,11 @@
1
1
  ## Unreleased
2
- [full changelog](https://github.com/sue445/tweet_sanitizer/compare/v0.1.1...master)
2
+ [full changelog](https://github.com/sue445/tweet_sanitizer/compare/v0.2.0...master)
3
+
4
+ ## v0.2.0
5
+ [full changelog](https://github.com/sue445/tweet_sanitizer/compare/v0.1.1...v0.2.0)
6
+
7
+ * Add sanitize options
8
+ * https://github.com/sue445/tweet_sanitizer/pull/12
3
9
 
4
10
  ## v0.1.1
5
11
  [full changelog](https://github.com/sue445/tweet_sanitizer/compare/v0.1.0...v0.1.1)
data/README.md CHANGED
@@ -67,6 +67,40 @@ See following.
67
67
 
68
68
  https://dev.twitter.com/overview/api/upcoming-changes-to-tweets
69
69
 
70
+ ### Options
71
+ Same to `Twitter::Tweet#sanitized_text` and `TweetSanitizer.sanitize`. (By default all are `true`)
72
+
73
+ * `use_retweeted_tweet` : Whether use original retweeted tweet if exists
74
+ * `expand_url` : Whether expand url in tweet (e.g. `t.co` url -> original url)
75
+ * `remove_media_url` : Whether remove media url in tweet
76
+ * `unescape` : Whether unescape in tweet (e.g. `(&gt; &lt;)` -> `(> <)`)
77
+
78
+ #### Example
79
+
80
+ ```ruby
81
+ tweet = @client.status("https://twitter.com/github/status/900456141557080065", tweet_mode: "extended")
82
+
83
+ # all are false
84
+ tweet.sanitized_text(use_retweeted_tweet: false, expand_url: false, remove_media_url: false, unescape: false)
85
+ #=> "RT @GitHubEducation: Announcing two new GitHub Classroom features: Assignment Deadlines and Class Rosters: https://t.co/bNiJnlps5e https://…"
86
+
87
+ # Only use_retweeted_tweet is true
88
+ tweet.sanitized_text(use_retweeted_tweet: true, expand_url: false, remove_media_url: false, unescape: false)
89
+ #=> "Announcing two new GitHub Classroom features: Assignment Deadlines and Class Rosters: https://t.co/bNiJnlps5e https://t.co/C02G05tUvu"
90
+
91
+ # Only expand_url is true
92
+ tweet.sanitized_text(use_retweeted_tweet: false, expand_url: true, remove_media_url: false, unescape: false)
93
+ #=> "RT @GitHubEducation: Announcing two new GitHub Classroom features: Assignment Deadlines and Class Rosters: https://github.com/blog/2418-github-classroom-now-supports-deadlines-and-class-rosters https://…"
94
+
95
+ # Only remove_media_url is true
96
+ tweet.sanitized_text(use_retweeted_tweet: false, expand_url: false, remove_media_url: true, unescape: false)
97
+ #=> "RT @GitHubEducation: Announcing two new GitHub Classroom features: Assignment Deadlines and Class Rosters: https://t.co/bNiJnlps5e https://…"
98
+
99
+ # all are true (default)
100
+ tweet.sanitized_text
101
+ #=> "Announcing two new GitHub Classroom features: Assignment Deadlines and Class Rosters: https://github.com/blog/2418-github-classroom-now-supports-deadlines-and-class-rosters"
102
+ ```
103
+
70
104
  ## Development
71
105
 
72
106
  ```bash
@@ -3,22 +3,30 @@ require "tweet_sanitizer/version"
3
3
  require "tweet_sanitizer/twitter_extension"
4
4
 
5
5
  module TweetSanitizer
6
+ # Sanitize tweet
6
7
  # @param tweet [Twitter:Tweet]
8
+ # @param use_retweeted_tweet [Boolean] Whether use original retweeted tweet if exists
9
+ # @param expand_url [Boolean] Whether expand url in tweet (e.g. `t.co` url -> original url)
10
+ # @param remove_media_url [Boolean] Whether remove media url in tweet
11
+ # @param unescape [Boolean] Whether unescape in tweet (e.g. `(&gt; &lt;)` -> `(> <)`)
7
12
  # @return [String]
8
- def self.sanitize(tweet)
13
+ def self.sanitize(tweet, use_retweeted_tweet: true, expand_url: true, remove_media_url: true, unescape: true)
9
14
  # Original RT status is exists in retweeted_status
10
- tweet = Twitter::Tweet.new(tweet.attrs[:retweeted_status]) if tweet.attrs[:retweeted_status]
15
+ if use_retweeted_tweet && tweet.attrs[:retweeted_status]
16
+ tweet = Twitter::Tweet.new(tweet.attrs[:retweeted_status])
17
+ end
11
18
 
12
- text = expand_urls_text(tweet)
13
- text = remove_media_urls_in_tweet(tweet, text)
14
- text = CGI.unescapeHTML(text)
19
+ text = tweet_full_text(tweet)
20
+ text = expand_urls_text(tweet, text) if expand_url
21
+ text = remove_media_urls_in_tweet(tweet, text) if remove_media_url
22
+ text = CGI.unescapeHTML(text) if unescape
15
23
  text
16
24
  end
17
25
 
18
26
  # @param tweet [Twitter:Tweet]
27
+ # @param text [String]
19
28
  # @return [String]
20
- def self.expand_urls_text(tweet)
21
- text = tweet_full_text(tweet)
29
+ def self.expand_urls_text(tweet, text)
22
30
  return text unless tweet.uris?
23
31
 
24
32
  tweet.uris.reverse.each_with_object(text.dup) do |uri, expanded|
@@ -1,9 +1,20 @@
1
1
  module TweetSanitizer
2
2
  module TwitterExtension
3
3
  refine(Twitter::Tweet) do
4
+ # Sanitize tweet
5
+ # @param use_retweeted_tweet [Boolean] Whether use original retweeted tweet if exists
6
+ # @param expand_url [Boolean] Whether expand url in tweet (e.g. `t.co` url -> original url)
7
+ # @param remove_media_url [Boolean] Whether remove media url in tweet
8
+ # @param unescape [Boolean] Whether unescape in tweet (e.g. `(&gt; &lt;)` -> `(> <)`)
4
9
  # @return [String]
5
- def sanitized_text
6
- TweetSanitizer.sanitize(self)
10
+ def sanitized_text(use_retweeted_tweet: true, expand_url: true, remove_media_url: true, unescape: true)
11
+ TweetSanitizer.sanitize(
12
+ self,
13
+ use_retweeted_tweet: use_retweeted_tweet,
14
+ expand_url: expand_url,
15
+ remove_media_url: remove_media_url,
16
+ unescape: unescape,
17
+ )
7
18
  end
8
19
  end
9
20
  end
@@ -1,3 +1,3 @@
1
1
  module TweetSanitizer
2
- VERSION = "0.1.1"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tweet_sanitizer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - sue445
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-08-16 00:00:00.000000000 Z
11
+ date: 2017-09-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: twitter