cinch-twitterstatus 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
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: