cinch-wikipedia 1.0.3 → 1.0.4
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 +7 -0
- data/.travis.yml +20 -1
- data/cinch-wikipedia.gemspec +7 -8
- data/lib/cinch/plugins/wikipedia.rb +45 -44
- data/lib/cinch/plugins/wikipedia/version.rb +1 -1
- data/spec/cinch-wikipedia_spec.rb +19 -12
- metadata +39 -44
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: 305cbd144f78bb303fc80ea0799cb7f99bf3e617
|
4
|
+
data.tar.gz: c459148d6bf723416685399c1bb81ef55ff9353d
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: d67acf315089000afc197817fc3f721244be777ce70ce680940b342c8d235bb571b293ac4429c16cb9bb59293166f3907fe7b98b41ed63680a39032124e1e504
|
7
|
+
data.tar.gz: d7610b6e57932623fd3798ed99ee9a1f86ca07d5335a8cb7dcf88e31fcecf84fb4b246bad31e4e556f63ca42dded00985e90e5c7283c81f9a8c910d7ad5245d2
|
data/.travis.yml
CHANGED
@@ -1,4 +1,23 @@
|
|
1
1
|
language: ruby
|
2
|
+
env:
|
3
|
+
global:
|
4
|
+
- "JRUBY_OPTS=-Xcext.enabled=true"
|
2
5
|
rvm:
|
3
|
-
- 1.
|
6
|
+
- 2.1.0
|
7
|
+
- 2.0.0
|
4
8
|
- 1.9.3
|
9
|
+
- 1.9.2
|
10
|
+
- 1.8.7
|
11
|
+
- jruby-18mode
|
12
|
+
- jruby-19mode
|
13
|
+
- ruby-head
|
14
|
+
- jruby-head
|
15
|
+
- ree
|
16
|
+
matrix:
|
17
|
+
allow_failures:
|
18
|
+
- rvm: 1.8.7
|
19
|
+
- rvm: ree
|
20
|
+
- rvm: jruby-18mode
|
21
|
+
- rvm: jruby-19mode
|
22
|
+
- rvm: jruby-head
|
23
|
+
fast_finish: true
|
data/cinch-wikipedia.gemspec
CHANGED
@@ -18,12 +18,11 @@ Gem::Specification.new do |gem|
|
|
18
18
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
19
19
|
gem.require_paths = ['lib']
|
20
20
|
|
21
|
-
gem.add_development_dependency
|
22
|
-
gem.add_development_dependency
|
23
|
-
gem.add_development_dependency
|
24
|
-
gem.add_development_dependency
|
25
|
-
|
26
|
-
gem.add_dependency
|
27
|
-
gem.add_dependency
|
28
|
-
gem.add_dependency 'cinch-cooldown', '~> 1.1.1'
|
21
|
+
gem.add_development_dependency 'rake', '~> 10'
|
22
|
+
gem.add_development_dependency 'rspec', '~> 3'
|
23
|
+
gem.add_development_dependency 'coveralls', '~> 0.7'
|
24
|
+
gem.add_development_dependency 'cinch-test', '~> 0.1', '>= 0.1.0'
|
25
|
+
gem.add_dependency 'cinch', '~> 2'
|
26
|
+
gem.add_dependency 'cinch-cooldown', '~> 1.1', '>= 1.1.1'
|
27
|
+
gem.add_dependency 'cinch-toolbox', '~> 1.1'
|
29
28
|
end
|
@@ -3,64 +3,65 @@ require 'cinch'
|
|
3
3
|
require 'cinch/toolbox'
|
4
4
|
require 'cinch/cooldown'
|
5
5
|
|
6
|
-
module Cinch
|
7
|
-
|
8
|
-
|
9
|
-
|
6
|
+
module Cinch
|
7
|
+
module Plugins
|
8
|
+
# Plugin to allow users to search wikipedia.
|
9
|
+
class Wikipedia
|
10
|
+
include Cinch::Plugin
|
10
11
|
|
11
|
-
|
12
|
+
enforce_cooldown
|
12
13
|
|
13
|
-
|
14
|
+
self.help = 'Use .wiki <term> to see the Wikipedia info for that term.'
|
14
15
|
|
15
|
-
|
16
|
-
match /wikipedia (.*)/
|
16
|
+
match(/wiki(?:pedia)? (.*)/)
|
17
17
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
18
|
+
def initialize(*args)
|
19
|
+
super
|
20
|
+
@max_length = config[:max_length] || 300
|
21
|
+
end
|
22
22
|
|
23
|
-
|
24
|
-
|
25
|
-
|
23
|
+
def execute(m, term)
|
24
|
+
m.reply wiki(term)
|
25
|
+
end
|
26
26
|
|
27
|
-
|
27
|
+
private
|
28
28
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
29
|
+
def wiki(term)
|
30
|
+
# URI Encode
|
31
|
+
term = URI.escape(term, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))
|
32
|
+
url = "http://en.wikipedia.org/w/index.php?search=#{term}"
|
33
33
|
|
34
|
-
|
35
|
-
|
36
|
-
|
34
|
+
# Truncate text and url if they are too long
|
35
|
+
text = Cinch::Toolbox.truncate(get_def(term, url), @max_length)
|
36
|
+
url = Cinch::Toolbox.shorten(url)
|
37
37
|
|
38
|
-
|
39
|
-
|
38
|
+
"Wikipedia ∴ #{text} [#{url}]"
|
39
|
+
end
|
40
40
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
41
|
+
def get_def(term, url)
|
42
|
+
cats = Cinch::Toolbox.get_html_element(url, '#mw-normal-catlinks')
|
43
|
+
if cats && cats.include?('Disambiguation')
|
44
|
+
wiki_text = "'#{term} is too vague and lead to a disambiguation page."
|
45
|
+
else
|
46
|
+
wiki_text = Cinch::Toolbox.get_html_element(url, '#mw-content-text p')
|
47
|
+
if wiki_text.nil? || wiki_text.include?('Help:Searching')
|
48
|
+
return not_found(url)
|
49
|
+
end
|
49
50
|
end
|
51
|
+
wiki_text
|
50
52
|
end
|
51
|
-
wiki_text
|
52
|
-
end
|
53
53
|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
54
|
+
def not_found(url)
|
55
|
+
msg = "I couldn't find anything for that search, "
|
56
|
+
alt_term = Cinch::Toolbox.get_html_element(url, '.searchdidyoumean')
|
57
|
+
if alt_term
|
58
|
+
alt_term = alt_term[/\ADid you mean: (\w+)\z/, 1]
|
59
|
+
msg << "did you mean '#{alt_term}'?"
|
60
|
+
else
|
61
|
+
msg << 'sorry!'
|
62
|
+
end
|
63
|
+
msg
|
62
64
|
end
|
63
|
-
msg
|
64
65
|
end
|
65
66
|
end
|
66
67
|
end
|
@@ -9,34 +9,41 @@ describe Cinch::Plugins::Wikipedia do
|
|
9
9
|
|
10
10
|
# normal queries
|
11
11
|
it 'should return a definition of a term' do
|
12
|
-
get_replies(make_message(@bot, '!wiki computer')).first.text
|
13
|
-
|
12
|
+
expect(get_replies(make_message(@bot, '!wiki computer')).first.text)
|
13
|
+
.to include("A computer is a general purpose device")
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'should return a definition of a term for each version of cmd' do
|
17
|
+
msg1 = get_replies(make_message(@bot, '!wiki computer')).first.text
|
18
|
+
msg2 = get_replies(make_message(@bot, '!wikipedia computer')).first.text
|
19
|
+
expect(msg1).to eq(msg2)
|
14
20
|
end
|
15
21
|
|
16
22
|
it 'should not return multiple lined definitions' do
|
17
|
-
get_replies(make_message(@bot, '!wiki Teenager')).first.text
|
18
|
-
|
23
|
+
expect(get_replies(make_message(@bot, '!wiki Teenager')).first.text)
|
24
|
+
.to_not include("\n")
|
19
25
|
end
|
20
26
|
|
21
27
|
it 'should not return definitions that are longer than 250 chars' do
|
22
|
-
get_replies(make_message(@bot, '!wiki Teenager')).first.text.length
|
23
|
-
|
28
|
+
expect(get_replies(make_message(@bot, '!wiki Teenager')).first.text.length)
|
29
|
+
.to eq 334
|
24
30
|
end
|
25
31
|
|
26
32
|
# Not found
|
27
33
|
it 'should return an error message when a term is not found' do
|
28
|
-
|
29
|
-
|
34
|
+
msg = make_message(@bot, '!wiki dasdafasfasfasfasafsdfsdfsadf')
|
35
|
+
expect(get_replies(msg).first.text)
|
36
|
+
.to include("I couldn't find anything for that search, sorry!")
|
30
37
|
end
|
31
38
|
|
32
39
|
it 'should provide suggestions if one is listed on the page' do
|
33
|
-
get_replies(make_message(@bot, '!wiki smegama')).first.text
|
34
|
-
|
40
|
+
expect(get_replies(make_message(@bot, '!wiki smegama')).first.text)
|
41
|
+
.to include("I couldn't find anything for that search, did you mean 'smegma'?")
|
35
42
|
end
|
36
43
|
|
37
44
|
# disambiguation
|
38
45
|
it 'should return helful information when a disambuation page' do
|
39
|
-
get_replies(make_message(@bot, '!wiki hacker')).first.text
|
40
|
-
|
46
|
+
expect(get_replies(make_message(@bot, '!wiki hacker')).first.text)
|
47
|
+
.to include('is too vague and lead to a disambiguation page')
|
41
48
|
end
|
42
49
|
end
|
metadata
CHANGED
@@ -1,128 +1,125 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cinch-wikipedia
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
5
|
-
prerelease:
|
4
|
+
version: 1.0.4
|
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-
|
11
|
+
date: 2014-08-04 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: '
|
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: '
|
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: '
|
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: '
|
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:
|
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:
|
74
|
+
version: 0.1.0
|
78
75
|
- !ruby/object:Gem::Dependency
|
79
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: 2
|
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: 2
|
88
|
+
version: '2'
|
94
89
|
- !ruby/object:Gem::Dependency
|
95
|
-
name: cinch-
|
90
|
+
name: cinch-cooldown
|
96
91
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
92
|
requirements:
|
99
93
|
- - ~>
|
100
94
|
- !ruby/object:Gem::Version
|
101
|
-
version: 1.1
|
95
|
+
version: '1.1'
|
96
|
+
- - ! '>='
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: 1.1.1
|
102
99
|
type: :runtime
|
103
100
|
prerelease: false
|
104
101
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
102
|
requirements:
|
107
103
|
- - ~>
|
108
104
|
- !ruby/object:Gem::Version
|
109
|
-
version: 1.1
|
105
|
+
version: '1.1'
|
106
|
+
- - ! '>='
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
version: 1.1.1
|
110
109
|
- !ruby/object:Gem::Dependency
|
111
|
-
name: cinch-
|
110
|
+
name: cinch-toolbox
|
112
111
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
112
|
requirements:
|
115
113
|
- - ~>
|
116
114
|
- !ruby/object:Gem::Version
|
117
|
-
version: 1.1
|
115
|
+
version: '1.1'
|
118
116
|
type: :runtime
|
119
117
|
prerelease: false
|
120
118
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
119
|
requirements:
|
123
120
|
- - ~>
|
124
121
|
- !ruby/object:Gem::Version
|
125
|
-
version: 1.1
|
122
|
+
version: '1.1'
|
126
123
|
description: Cinch plugin that fetches a truncated blurb from the head of a wikipedia
|
127
124
|
page.
|
128
125
|
email:
|
@@ -146,29 +143,27 @@ files:
|
|
146
143
|
homepage: https://github.com/bhaberer/cinch-wikipedia
|
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:
|
163
|
+
rubygems_version: 2.2.2
|
168
164
|
signing_key:
|
169
|
-
specification_version:
|
165
|
+
specification_version: 4
|
170
166
|
summary: Cinch Wikipedia Plugin
|
171
167
|
test_files:
|
172
168
|
- spec/cinch-wikipedia_spec.rb
|
173
169
|
- spec/spec_helper.rb
|
174
|
-
has_rdoc:
|