cinch-twitterstatus 1.1.0 → 1.1.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: 845cb76a25308cbdc40708c3c6d7c4fc6248da6a
4
+ data.tar.gz: 117716e75d38820d63fce21d2c603a17d9d4eff6
5
+ SHA512:
6
+ metadata.gz: bea0d7b4bbaede8c99cf24b49b4e5e7ce19438a126ba0d94bd08e6fb8978a86dbbadb8e3fa13a5c00da8494cbd487391d4d7c634e75be4d09c85cca821899837
7
+ data.tar.gz: d44ef11168014e53a89d6e32b3c10371040018ed531570a429fab3c922002417332b9f77bcc30722f61737f42b20f14ef0c9dc6af0236ce741f8a9a7dee47c08
data/.travis.yml CHANGED
@@ -1,26 +1,43 @@
1
1
  ---
2
2
  language: ruby
3
3
  rvm:
4
- - 1.9.2
5
- - 1.9.3
4
+ - 2.1.0
5
+ - 2.0.0
6
+ - 1.9.3
7
+ - 1.9.2
8
+ - 1.8.7
9
+ - jruby-18mode
10
+ - jruby-19mode
11
+ - ruby-head
12
+ - jruby-head
13
+ - ree
14
+ matrix:
15
+ allow_failures:
16
+ - rvm: 1.8.7
17
+ - rvm: ree
18
+ - rvm: jruby-18mode
19
+ - rvm: jruby-19mode
20
+ - rvm: jruby-head
21
+ fast_finish: true
6
22
  env:
7
23
  global:
8
- - secure: ! 'Yz/VAtfbXwk6JD/2/z6c2SGygNGELrF0dlZ/M5nOrDiKNm8lxpC6w19esGbB
24
+ - JRUBY_OPTS=-Xcext.enabled=true
25
+ - secure: ! 'Yz/VAtfbXwk6JD/2/z6c2SGygNGELrF0dlZ/M5nOrDiKNm8lxpC6w19esGbB
9
26
 
10
27
  CYt8UtqylceJ2UxYngHLVH48oPb+A5fv21/jDJMqHeO/N4WjwQUOzBZXfZG6
11
28
 
12
29
  lpugXIsT9Q10q0AsXry65YuzZtpY7VkVQUNSBYte7jTcWbLmIWQ='
13
- - secure: ! 'CbdMyExVnyHfPQ+scSky8JIlqK0dU7idBrtvipQIA2dGfIIj0lzuUDEqvtAv
30
+ - secure: ! 'CbdMyExVnyHfPQ+scSky8JIlqK0dU7idBrtvipQIA2dGfIIj0lzuUDEqvtAv
14
31
 
15
32
  +9A7Mw01ddxQ/tXdixHDBNOhp9Ddz+4/0OSMyIb/5uFy+l7b2B2K4A4R5crI
16
33
 
17
34
  RBc5W5rgzRLnDD7HL4BZMRDpx3sJRLcIH9S4bclXyjkzQ7yzVDc='
18
- - secure: ! 'Pl14JkhwMe+HHi1Ht0znd0+TnSzdSGvtG4pX8+oSWuIyfTd3xfoj7Pf1S4P/
35
+ - secure: ! 'Pl14JkhwMe+HHi1Ht0znd0+TnSzdSGvtG4pX8+oSWuIyfTd3xfoj7Pf1S4P/
19
36
 
20
37
  7SVnixq2gQh13OaL4Tj2sR6+AHz6n+onareFoKkZPSJuDRh6yXFfvKIdx4MV
21
38
 
22
39
  l5lIJbSI4icPWOMk6ObMCzIb/m3m4Z/BG3O5E/6AcJDQa7rspL0='
23
- - secure: ! 'Xrh52mNuRCf1kJHpZctrz3gfBZQ/rlC+qz/MlvZ9L7sm1CFSIoJdizrOYawt
40
+ - secure: ! 'Xrh52mNuRCf1kJHpZctrz3gfBZQ/rlC+qz/MlvZ9L7sm1CFSIoJdizrOYawt
24
41
 
25
42
  cKOyLfsLrcnJqGbq0s++cSQ2QDggEGxtVkMXxIw7dBFn2icZsKsTN5rh28UR
26
43
 
@@ -17,13 +17,11 @@ Gem::Specification.new do |gem|
17
17
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
18
18
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
19
19
  gem.require_paths = ["lib"]
20
-
21
- gem.add_development_dependency 'rake'
22
- gem.add_development_dependency 'rspec'
23
- gem.add_development_dependency 'coveralls'
24
- gem.add_development_dependency 'cinch-test'
25
-
26
- gem.add_dependency 'twitter', '~> 5.7.1'
27
- gem.add_dependency 'cinch', '~> 2.0.12'
28
- gem.add_dependency 'cinch-toolbox', '~> 1.1.0'
20
+ gem.add_development_dependency 'rake', '~> 10'
21
+ gem.add_development_dependency 'rspec', '~> 3'
22
+ gem.add_development_dependency 'coveralls', '~> 0.7'
23
+ gem.add_development_dependency 'cinch-test', '~> 0.1', '>= 0.1.0'
24
+ gem.add_dependency 'cinch', '~> 2'
25
+ gem.add_dependency 'cinch-toolbox', '~> 1.1'
26
+ gem.add_dependency 'twitter', '~> 5.7', '>= 5.7.1'
29
27
  end
@@ -3,62 +3,63 @@ require 'cinch'
3
3
  require 'cinch/toolbox'
4
4
  require 'twitter'
5
5
 
6
- module Cinch::Plugins
7
- # Cinch Plugin to post twitter statuses
8
- class TwitterStatus
9
- include Cinch::Plugin
6
+ module Cinch
7
+ module Plugins
8
+ # Cinch Plugin to post twitter statuses
9
+ class TwitterStatus
10
+ include Cinch::Plugin
10
11
 
11
- self.help = 'Just link to a specific twitter status and I will post the ' +
12
- ' content of that tweet.'
12
+ self.help = 'Just link to a specific twitter status and I will ' \
13
+ 'post the content of that tweet.'
13
14
 
14
- listen_to :channel
15
+ listen_to :channel
15
16
 
16
- def initialize(*args)
17
- super
18
- @client = twitter_client
19
- end
17
+ def initialize(*args)
18
+ super
19
+ @client = twitter_client
20
+ end
20
21
 
21
- def listen(m)
22
- Cinch::Toolbox.extract_urls(m.message).each do |url|
23
- if url.match(%r(^https?://mobile|w{3}?\.?twitter\.com/))
22
+ def listen(m)
23
+ Cinch::Toolbox.extract_urls(m.message).each do |url|
24
+ next unless url.match(%r(^https?://mobile|w{3}?\.?twitter\.com/))
24
25
  msg = format_tweet(url)
25
26
  m.reply msg unless msg.nil?
26
27
  end
28
+ rescue Twitter::Error::NotFound, Twitter::Error::Forbidden
29
+ debug 'User posted an invalid twitter status'
27
30
  end
28
- rescue Twitter::Error::NotFound, Twitter::Error::Forbidden
29
- debug 'User posted an invalid twitter status'
30
- end
31
31
 
32
- def format_tweet(url)
33
- # Parse the url and get the relevant data
34
- user, status = parse_twitter_url(url)
32
+ def format_tweet(url)
33
+ # Parse the url and get the relevant data
34
+ user, status = parse_twitter_url(url)
35
35
 
36
- # Return blank if we didn't get a good user and status
37
- return if user.nil? || status.nil?
36
+ # Return blank if we didn't get a good user and status
37
+ return if user.nil? || status.nil?
38
38
 
39
- tweet_text(user, status)
40
- end
39
+ tweet_text(user, status)
40
+ end
41
41
 
42
- def tweet_text(user, status)
43
- # Scrub the tweet for returns so we don't have multilined responses.
44
- status.gsub!(/[\n]+/, ' ') if status.match(/\n/)
45
- "@#{user} tweeted \"#{status}\""
46
- end
42
+ def tweet_text(user, status)
43
+ # Scrub the tweet for returns so we don't have multilined responses.
44
+ status.gsub!(/[\n]+/, ' ') if status.match(/\n/)
45
+ "@#{user} tweeted \"#{status}\""
46
+ end
47
47
 
48
- private
48
+ private
49
49
 
50
- def parse_twitter_url(url)
51
- tweet_id = url[%r(statuse?s?/(\d+)/?), 1]
52
- user = url[%r(/?#?!?/([^\/]+)/statuse?s?), 1]
53
- [user, @client.status(tweet_id).text]
54
- end
50
+ def parse_twitter_url(url)
51
+ tweet_id = url[%r{statuse?s?/(\d+)/?}, 1]
52
+ user = url[%r{/?#?!?/([^\/]+)/statuse?s?}, 1]
53
+ [user, @client.status(tweet_id).text]
54
+ end
55
55
 
56
- def twitter_client
57
- Twitter::REST::Client.new do |c|
58
- c.consumer_key = config[:consumer_key]
59
- c.consumer_secret = config[:consumer_secret]
60
- c.access_token = config[:access_token]
61
- c.access_token_secret = config[:access_secret]
56
+ def twitter_client
57
+ Twitter::REST::Client.new do |c|
58
+ c.consumer_key = config[:consumer_key]
59
+ c.consumer_secret = config[:consumer_secret]
60
+ c.access_token = config[:access_token]
61
+ c.access_token_secret = config[:access_secret]
62
+ end
62
63
  end
63
64
  end
64
65
  end
@@ -3,7 +3,7 @@ module Cinch
3
3
  module Plugins
4
4
  # Versioning info
5
5
  class TwitterStatus
6
- VERSION = '1.1.0'
6
+ VERSION = '1.1.1'
7
7
  end
8
8
  end
9
9
  end
@@ -6,37 +6,42 @@ describe Cinch::Plugins::TwitterStatus do
6
6
 
7
7
  before(:all) do
8
8
  @bot = make_bot(Cinch::Plugins::TwitterStatus,
9
- { filename: '/dev/null',
10
- watchers: { '#foo' => ['weirdo513'] },
11
- consumer_key: ENV['CONSUMER_KEY'],
9
+ { filename: '/dev/null',
10
+ watchers: { '#foo' => ['weirdo513'] },
11
+ consumer_key: ENV['CONSUMER_KEY'],
12
12
  consumer_secret: ENV['CONSUMER_SECRET'],
13
- oauth_token: ENV['OAUTH_TOKEN'],
14
- oauth_secret: ENV['OAUTH_SECRET'] })
13
+ oauth_token: ENV['OAUTH_TOKEN'],
14
+ oauth_secret: ENV['OAUTH_SECRET'] })
15
+ @status =
16
+ { normal: 'https://twitter.com/weirdo513/status/344186643609174016',
17
+ protected: 'https://twitter.com/brewtopian/status/68071618055901184',
18
+ invalid: 'https://twitter.com/weirdo513/status/3INVALI643609174016' }
15
19
  end
16
20
 
17
21
  describe "Twitter Link Parsing" do
18
22
  it 'should return the text of the tweet when linked in the channel' do
19
- get_replies(make_message(@bot, 'https://twitter.com/weirdo513/status/344186643609174016',
20
- { channel: '#foo', nick: 'bar' })).
21
- first.text.should == "@weirdo513 tweeted \"HOW IS THAT MIC STILL ON JESUS\""
23
+ msg = get_replies(make_message(@bot, @status[:normal],
24
+ { channel: '#foo', nick: 'bar' })).first
25
+ expect(msg.text).to eq('@weirdo513 tweeted "HOW IS THAT MIC STILL ON JESUS"')
22
26
  end
23
27
 
24
28
  it 'should not return any text if the status is invalid' do
25
- get_replies(make_message(@bot, 'https://twitter.com/weirdo513/status/3INVALI643609174016',
26
- { channel: '#foo', nick: 'bar' })).
27
- should be_empty
29
+ msg = get_replies(make_message(@bot, @status[:invalid],
30
+ { channel: '#foo', nick: 'bar' }))
31
+ expect(msg).to be_empty
28
32
  end
29
33
 
30
34
  it 'should not return any text if the status is protected' do
31
- get_replies(make_message(@bot, 'https://twitter.com/brewtopian/status/68071618055901184',
32
- { channel: '#foo', nick: 'bar' })).
33
- should be_empty
35
+ msg = get_replies(make_message(@bot, @status[:protected],
36
+ { channel: '#foo', nick: 'bar' }))
37
+ expect(msg).to be_empty
34
38
  end
35
39
 
36
40
  it 'should not run without credentials set' do
37
41
  bot = make_bot(Cinch::Plugins::TwitterStatus)
38
- get_replies(make_message(bot, 'https://twitter.com/weirdo513/status/344186643609174016',
39
- { channel: '#foo', nick: 'bar' }))
42
+ msg = get_replies(make_message(bot, @status[:normal],
43
+ { channel: '#foo', nick: 'bar' }))
44
+ expect(msg).to be_empty
40
45
  end
41
46
  end
42
47
 
@@ -44,9 +49,8 @@ describe Cinch::Plugins::TwitterStatus do
44
49
  # FIXME: cinch-test does not allow timers to function
45
50
  it 'should not post tweets that already existed when the bot was started' do
46
51
  sleep 20
47
- get_replies(make_message(@bot, 'https://twitter.com/weirdo513/status/344186643609174016',
52
+ get_replies(make_message(@bot, @status[:normal],
48
53
  { channel: '#foo', nick: 'bar' }))
49
54
  end
50
55
  end
51
56
  end
52
-
metadata CHANGED
@@ -1,128 +1,125 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cinch-twitterstatus
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
5
- prerelease:
4
+ version: 1.1.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Brian Haberer
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-02-20 00:00:00.000000000 Z
11
+ date: 2014-08-01 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rake
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - ~>
20
18
  - !ruby/object:Gem::Version
21
- version: '0'
19
+ version: '10'
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - ~>
28
25
  - !ruby/object:Gem::Version
29
- version: '0'
26
+ version: '10'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rspec
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ~>
36
32
  - !ruby/object:Gem::Version
37
- version: '0'
33
+ version: '3'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ~>
44
39
  - !ruby/object:Gem::Version
45
- version: '0'
40
+ version: '3'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: coveralls
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - ~>
52
46
  - !ruby/object:Gem::Version
53
- version: '0'
47
+ version: '0.7'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - ~>
60
53
  - !ruby/object:Gem::Version
61
- version: '0'
54
+ version: '0.7'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: cinch-test
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '0.1'
67
62
  - - ! '>='
68
63
  - !ruby/object:Gem::Version
69
- version: '0'
64
+ version: 0.1.0
70
65
  type: :development
71
66
  prerelease: false
72
67
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
68
  requirements:
69
+ - - ~>
70
+ - !ruby/object:Gem::Version
71
+ version: '0.1'
75
72
  - - ! '>='
76
73
  - !ruby/object:Gem::Version
77
- version: '0'
74
+ version: 0.1.0
78
75
  - !ruby/object:Gem::Dependency
79
- name: twitter
76
+ name: cinch
80
77
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
78
  requirements:
83
79
  - - ~>
84
80
  - !ruby/object:Gem::Version
85
- version: 5.7.1
81
+ version: '2'
86
82
  type: :runtime
87
83
  prerelease: false
88
84
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
85
  requirements:
91
86
  - - ~>
92
87
  - !ruby/object:Gem::Version
93
- version: 5.7.1
88
+ version: '2'
94
89
  - !ruby/object:Gem::Dependency
95
- name: cinch
90
+ name: cinch-toolbox
96
91
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
92
  requirements:
99
93
  - - ~>
100
94
  - !ruby/object:Gem::Version
101
- version: 2.0.12
95
+ version: '1.1'
102
96
  type: :runtime
103
97
  prerelease: false
104
98
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
99
  requirements:
107
100
  - - ~>
108
101
  - !ruby/object:Gem::Version
109
- version: 2.0.12
102
+ version: '1.1'
110
103
  - !ruby/object:Gem::Dependency
111
- name: cinch-toolbox
104
+ name: twitter
112
105
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
106
  requirements:
115
107
  - - ~>
116
108
  - !ruby/object:Gem::Version
117
- version: 1.1.0
109
+ version: '5.7'
110
+ - - ! '>='
111
+ - !ruby/object:Gem::Version
112
+ version: 5.7.1
118
113
  type: :runtime
119
114
  prerelease: false
120
115
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
116
  requirements:
123
117
  - - ~>
124
118
  - !ruby/object:Gem::Version
125
- version: 1.1.0
119
+ version: '5.7'
120
+ - - ! '>='
121
+ - !ruby/object:Gem::Version
122
+ version: 5.7.1
126
123
  description: Cinch IRC bot Plugin that access the Twitter API to post the content
127
124
  of linked twitter statuses to the channel.
128
125
  email:
@@ -146,29 +143,27 @@ files:
146
143
  homepage: https://github.com/bhaberer/cinch-twitterstatus
147
144
  licenses:
148
145
  - MIT
146
+ metadata: {}
149
147
  post_install_message:
150
148
  rdoc_options: []
151
149
  require_paths:
152
150
  - lib
153
151
  required_ruby_version: !ruby/object:Gem::Requirement
154
- none: false
155
152
  requirements:
156
153
  - - ! '>='
157
154
  - !ruby/object:Gem::Version
158
155
  version: '0'
159
156
  required_rubygems_version: !ruby/object:Gem::Requirement
160
- none: false
161
157
  requirements:
162
158
  - - ! '>='
163
159
  - !ruby/object:Gem::Version
164
160
  version: '0'
165
161
  requirements: []
166
162
  rubyforge_project:
167
- rubygems_version: 1.8.25
163
+ rubygems_version: 2.2.2
168
164
  signing_key:
169
- specification_version: 3
165
+ specification_version: 4
170
166
  summary: Cinch Plugin to post tweets to channel.
171
167
  test_files:
172
168
  - spec/cinch-twitterstatus_spec.rb
173
169
  - spec/spec_helper.rb
174
- has_rdoc: