twitter_ebooks 3.0.0 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +2 -1
- data/lib/twitter_ebooks/bot.rb +13 -7
- data/lib/twitter_ebooks/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3328234bbea5d2c32d76bd94af374cc5df1e85e2
|
4
|
+
data.tar.gz: c6657971137b56ba1f0a3edc758d2e467062611d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4ea260cf0fe888cdfa10b7b168ddf4331d51fc835ef85afcaa4f0e6591c56adb25984c1b24a117ef0d2407ca9d78ef22bb80013d4e05db8b1bb35af0c0a9899b
|
7
|
+
data.tar.gz: f4eda05cce4092fe8ec37868eaf7ec0dab7b1e1f4c5a2a465dff8b12bc718250a26fbe7282ecce5986a855aaae826c98109accfb0c2375be48dcda916348ebb4
|
data/README.md
CHANGED
@@ -8,13 +8,14 @@ A framework for building interactive twitterbots which respond to mentions/DMs.
|
|
8
8
|
|
9
9
|
## New in 3.0
|
10
10
|
|
11
|
+
- About 80% less memory and storage use for models
|
11
12
|
- Bots run in their own threads (no eventmachine), and startup is parallelized
|
12
13
|
- Bots start with `ebooks start`, and no longer die on unhandled exceptions
|
13
14
|
- `ebooks auth` command will create new access tokens, for running multiple bots
|
14
15
|
- `ebooks console` starts a ruby interpreter with bots loaded (see Ebooks::Bot.all)
|
15
16
|
- Replies are slightly rate-limited to prevent infinite bot convos
|
16
17
|
- Non-participating users in a mention chain will be dropped after a few tweets
|
17
|
-
- [API documentation](http://rdoc.info/github/mispy/twitter_ebooks)
|
18
|
+
- [API documentation](http://rdoc.info/github/mispy/twitter_ebooks) and tests
|
18
19
|
|
19
20
|
Note that 3.0 is not backwards compatible with 2.x, so upgrade carefully!
|
20
21
|
|
data/lib/twitter_ebooks/bot.rb
CHANGED
@@ -26,7 +26,7 @@ module Ebooks
|
|
26
26
|
# Make an informed guess as to whether a user is a bot based
|
27
27
|
# on their behavior in this conversation
|
28
28
|
def is_bot?(username)
|
29
|
-
usertweets = @tweets.select { |t| t.user.screen_name == username }
|
29
|
+
usertweets = @tweets.select { |t| t.user.screen_name.downcase == username.downcase }
|
30
30
|
|
31
31
|
if usertweets.length > 2
|
32
32
|
if (usertweets[-1].created_at - usertweets[-3].created_at) < 30
|
@@ -41,7 +41,7 @@ module Ebooks
|
|
41
41
|
# We want to avoid spamming non-participating users
|
42
42
|
def can_include?(username)
|
43
43
|
@tweets.length <= 4 ||
|
44
|
-
!@tweets[-4..-1].select { |t| t.user.screen_name == username }.empty?
|
44
|
+
!@tweets[-4..-1].select { |t| t.user.screen_name.downcase == username.downcase }.empty?
|
45
45
|
end
|
46
46
|
end
|
47
47
|
|
@@ -220,18 +220,18 @@ module Ebooks
|
|
220
220
|
end
|
221
221
|
|
222
222
|
if ev.is_a? Twitter::DirectMessage
|
223
|
-
return if ev.sender.screen_name == @username # Don't reply to self
|
223
|
+
return if ev.sender.screen_name.downcase == @username.downcase # Don't reply to self
|
224
224
|
log "DM from @#{ev.sender.screen_name}: #{ev.text}"
|
225
225
|
fire(:direct_message, ev)
|
226
226
|
|
227
227
|
elsif ev.respond_to?(:name) && ev.name == :follow
|
228
|
-
return if ev.source.screen_name == @username
|
228
|
+
return if ev.source.screen_name.downcase == @username.downcase
|
229
229
|
log "Followed by #{ev.source.screen_name}"
|
230
230
|
fire(:follow, ev.source)
|
231
231
|
|
232
232
|
elsif ev.is_a? Twitter::Tweet
|
233
233
|
return unless ev.text # If it's not a text-containing tweet, ignore it
|
234
|
-
return if ev.user.screen_name == @username # Ignore our own tweets
|
234
|
+
return if ev.user.screen_name.downcase == @username.downcase # Ignore our own tweets
|
235
235
|
|
236
236
|
meta = meta(ev)
|
237
237
|
|
@@ -283,7 +283,13 @@ module Ebooks
|
|
283
283
|
exit 1
|
284
284
|
end
|
285
285
|
|
286
|
-
twitter
|
286
|
+
real_name = twitter.user.screen_name
|
287
|
+
|
288
|
+
if real_name != @username
|
289
|
+
log "connected to @#{real_name}-- please update config to match Twitter account name"
|
290
|
+
@username = real_name
|
291
|
+
end
|
292
|
+
|
287
293
|
fire(:startup)
|
288
294
|
end
|
289
295
|
|
@@ -318,7 +324,7 @@ module Ebooks
|
|
318
324
|
# @param username [String]
|
319
325
|
# @return [Boolean]
|
320
326
|
def blacklisted?(username)
|
321
|
-
if @blacklist.include?(username)
|
327
|
+
if @blacklist.map(&:downcase).include?(username.downcase)
|
322
328
|
true
|
323
329
|
else
|
324
330
|
false
|