twitter_ebooks 2.2.8 → 2.2.9

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: 44b519ebe5950dda2bf315fa90935bfb3c674d46
4
- data.tar.gz: c54ed9b372891ff615f10f7ee5ac0788008ba895
3
+ metadata.gz: 50a5dca9c31287964724b38cb022c6273a242a59
4
+ data.tar.gz: 7c2f8e441bc119f1bc29b8e7ece6650812785fa4
5
5
  SHA512:
6
- metadata.gz: 11fb9f47f0ab6d327be5b44ae9ce6c32c55c2759a111d726ae0d3e187bac35f4c5473aed1395127e5ae30c26eeb3168fb3cbb7b5d3b94b6b7a89d24f38ec76d0
7
- data.tar.gz: 72445d21adb5cc34ed28731390bbb49ca16fd198e684e5bc6dbee28087fedd2a78d1ce6a21b384d7c36b21b40063e7b12426106825a57d6d9eb40abf25e8f9fb
6
+ metadata.gz: fdd9dee8a8f53bb421761a0a485b0c5bcb2677355e6c4186c69c8e60d9f15dbd13a4c1cd77c09243e609bc53b02cecc3d2c6a2f81e2fadc4da0cc8b527558df3
7
+ data.tar.gz: 6a0beb91162f03bfd3ddc1edb386940919b066c13ef323d370b3314b9e4cdd3cca4463f22719ce0cecfd5f5f33fe5b5352268d71d99fa2f15f2b8f41749845a7
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # twitter\_ebooks 2.2.8
1
+ # twitter\_ebooks 2.2.9
2
2
 
3
3
  Rewrite of my twitter\_ebooks code. While the original was solely a tweeting Markov generator, this framework helps you build any kind of interactive twitterbot which responds to mentions/DMs. See [ebooks\_example](https://github.com/mispy/ebooks_example) for an example of a full bot.
4
4
 
@@ -31,12 +31,14 @@ module Ebooks
31
31
  end
32
32
  end
33
33
 
34
- Twitter::REST::Client.new do |config|
34
+ Twitter.configure do |config|
35
35
  config.consumer_key = @config[:consumer_key]
36
36
  config.consumer_secret = @config[:consumer_secret]
37
- config.access_token = @config[:oauth_token]
38
- config.access_token_secret = @config[:oauth_token_secret]
37
+ config.oauth_token = @config[:oauth_token]
38
+ config.oauth_token_secret = @config[:oauth_token_secret]
39
39
  end
40
+
41
+ Twitter::Client.new
40
42
  end
41
43
 
42
44
  def initialize(username, path, client=nil)
@@ -43,13 +43,15 @@ module Ebooks
43
43
  config.oauth_token_secret = @oauth_token_secret
44
44
  end
45
45
 
46
- @twitter = Twitter::REST::Client.new do |config|
46
+ Twitter.configure do |config|
47
47
  config.consumer_key = @consumer_key
48
48
  config.consumer_secret = @consumer_secret
49
- config.access_token = @access_token
50
- config.access_token_secret = @access_token_secret
49
+ config.oauth_token = @oauth_token
50
+ config.oauth_token_secret = @oauth_token_secret
51
51
  end
52
52
 
53
+ @twitter = Twitter::Client.new
54
+
53
55
  needs_stream = [@on_follow, @on_message, @on_mention, @on_timeline].any? {|e| !e.nil?}
54
56
 
55
57
  @stream = TweetStream::Client.new if needs_stream
@@ -88,19 +90,19 @@ module Ebooks
88
90
  end
89
91
 
90
92
  @stream.userstream do |ev|
91
- next unless ev.text # If it's not a text-containing tweet, ignore it
92
- next if ev.user.screen_name == @username # Ignore our own tweets
93
+ next unless ev[:text] # If it's not a text-containing tweet, ignore it
94
+ next if ev[:user][:screen_name] == @username # Ignore our own tweets
93
95
 
94
96
  meta = {}
95
97
  mentions = ev.attrs[:entities][:user_mentions].map { |x| x[:screen_name] }
96
98
 
97
99
  reply_mentions = mentions.reject { |m| m.downcase == @username.downcase }
98
- reply_mentions = [ev.user.screen_name] + reply_mentions
100
+ reply_mentions = [ev[:user][:screen_name]] + reply_mentions
99
101
 
100
102
  meta[:reply_prefix] = reply_mentions.uniq.map { |m| '@'+m }.join(' ') + ' '
101
103
  meta[:limit] = 140 - meta[:reply_prefix].length
102
104
 
103
- mless = ev.text
105
+ mless = ev[:text]
104
106
  begin
105
107
  ev.attrs[:entities][:user_mentions].reverse.each do |entity|
106
108
  last = mless[entity[:indices][1]..-1]||''
@@ -108,7 +110,7 @@ module Ebooks
108
110
  end
109
111
  rescue Exception
110
112
  p ev.attrs[:entities][:user_mentions]
111
- p ev.text
113
+ p ev[:text]
112
114
  raise
113
115
  end
114
116
  meta[:mentionless] = mless
@@ -117,8 +119,8 @@ module Ebooks
117
119
  # - The tweet mentions list contains our username
118
120
  # - The tweet is not being retweeted by somebody else
119
121
  # - Or soft-retweeted by somebody else
120
- if mentions.map(&:downcase).include?(@username.downcase) && !ev.retweeted_status && !ev.text.start_with?('RT ')
121
- log "Mention from @#{ev.user.screen_name}: #{ev.text}"
122
+ if mentions.map(&:downcase).include?(@username.downcase) && !ev[:retweeted_status] && !ev[:text].start_with?('RT ')
123
+ log "Mention from @#{ev[:user][:screen_name]}: #{ev[:text]}"
122
124
  @on_mention.call(ev, meta) if @on_mention
123
125
  else
124
126
  @on_timeline.call(ev, meta) if @on_timeline
@@ -139,11 +141,11 @@ module Ebooks
139
141
  opts = opts.clone
140
142
 
141
143
  if ev.is_a? Twitter::DirectMessage
142
- log "Sending DM to @#{ev.sender.screen_name}: #{text}"
143
- @twitter.direct_message_create(ev.sender.screen_name, text, opts)
144
+ log "Sending DM to @#{ev[:sender][:screen_name]}: #{text}"
145
+ @twitter.direct_message_create(ev[:sender][:screen_name], text, opts)
144
146
  elsif ev.is_a? Twitter::Tweet
145
- log "Replying to @#{ev.user.screen_name} with: #{text}"
146
- @twitter.update(text, in_reply_to_status_id: ev.id)
147
+ log "Replying to @#{ev[:user][:screen_name]} with: #{text}"
148
+ @twitter.update(text, in_reply_to_status_id: ev[:id])
147
149
  else
148
150
  raise Exception("Don't know how to reply to a #{ev.class}")
149
151
  end
@@ -1,3 +1,3 @@
1
1
  module Ebooks
2
- VERSION = "2.2.8"
2
+ VERSION = "2.2.9"
3
3
  end
@@ -19,7 +19,8 @@ Gem::Specification.new do |gem|
19
19
  gem.add_development_dependency 'memory_profiler'
20
20
  gem.add_development_dependency 'pry-byebug'
21
21
 
22
- gem.add_runtime_dependency 'twitter', '~> 5.1'
22
+ gem.add_runtime_dependency 'twitter', '~> 4.0'
23
+ gem.add_runtime_dependency 'simple_oauth', '~> 0.2.0'
23
24
  gem.add_runtime_dependency 'tweetstream'
24
25
  gem.add_runtime_dependency 'rufus-scheduler'
25
26
  gem.add_runtime_dependency 'gingerice'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: twitter_ebooks
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.8
4
+ version: 2.2.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jaiden Mispy
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-19 00:00:00.000000000 Z
11
+ date: 2014-10-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -58,14 +58,28 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '5.1'
61
+ version: '4.0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '5.1'
68
+ version: '4.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: simple_oauth
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 0.2.0
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 0.2.0
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: tweetstream
71
85
  requirement: !ruby/object:Gem::Requirement