cinch-magic 0.0.1 → 1.0.0
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.
- data/.travis.yml +4 -0
- data/README.md +6 -0
- data/Rakefile +6 -0
- data/cinch-magic.gemspec +8 -2
- data/lib/cinch/plugins/magic/magic.rb +10 -11
- data/lib/cinch/plugins/magic/version.rb +1 -1
- data/spec/cinch-magic_spec.rb +20 -0
- data/spec/spec_helper.rb +5 -0
- metadata +93 -8
data/.travis.yml
ADDED
data/README.md
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
# Cinch::Plugins::Magic
|
2
2
|
|
3
|
+
[](http://badge.fury.io/rb/cinch-magic)
|
4
|
+
[](https://gemnasium.com/bhaberer/cinch-magic)
|
5
|
+
[](https://travis-ci.org/bhaberer/cinch-magic)
|
6
|
+
[](https://coveralls.io/r/bhaberer/cinch-magic?branch=master)
|
7
|
+
[](https://codeclimate.com/github/bhaberer/cinch-magic)
|
8
|
+
|
3
9
|
Just a simple plugin that looks up card info.
|
4
10
|
|
5
11
|
## Installation
|
data/Rakefile
CHANGED
data/cinch-magic.gemspec
CHANGED
@@ -17,6 +17,12 @@ Gem::Specification.new do |gem|
|
|
17
17
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
18
18
|
gem.require_paths = ["lib"]
|
19
19
|
|
20
|
-
gem.
|
21
|
-
gem.
|
20
|
+
gem.add_development_dependency 'rake'
|
21
|
+
gem.add_development_dependency 'rspec'
|
22
|
+
gem.add_development_dependency 'coveralls'
|
23
|
+
|
24
|
+
gem.add_dependency 'cinch', '~> 2.0.5'
|
25
|
+
gem.add_dependency 'cinch-test', '~> 0.0.3'
|
26
|
+
gem.add_dependency 'cinch-toolbox', '~> 1.0.2'
|
27
|
+
gem.add_dependency 'cinch-cooldown', '~> 1.0.0'
|
22
28
|
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
|
-
require 'cinch
|
2
|
+
require 'cinch'
|
3
|
+
require 'cinch/toolbox'
|
3
4
|
require 'cinch-cooldown'
|
4
5
|
|
5
6
|
module Cinch::Plugins
|
@@ -35,11 +36,11 @@ module Cinch::Plugins
|
|
35
36
|
end
|
36
37
|
|
37
38
|
def get_card_info(data)
|
38
|
-
text = data
|
39
|
+
text = data[/<p[^>]*>([^<]+)<\/p>/, 1]
|
39
40
|
|
40
41
|
# Replace Newlines, unicode lines, total mana, and large spaces.
|
41
42
|
text = text.gsub(/\n/, '')
|
42
|
-
text = text.gsub(
|
43
|
+
text = text.gsub(/\s—/, ', ')
|
43
44
|
text = text.gsub(/\s\(\d*\)/, '')
|
44
45
|
text = text.gsub(/\s{2,}/, ' ')
|
45
46
|
|
@@ -52,7 +53,7 @@ module Cinch::Plugins
|
|
52
53
|
end
|
53
54
|
|
54
55
|
def get_card_name(data)
|
55
|
-
return data
|
56
|
+
return data[/<a href=[^>]*>([^<]+)<\/a>/, 1]
|
56
57
|
rescue
|
57
58
|
debug "Error finding this card's name"
|
58
59
|
end
|
@@ -70,7 +71,6 @@ module Cinch::Plugins
|
|
70
71
|
end
|
71
72
|
|
72
73
|
def get_card_data(term)
|
73
|
-
debug "#{term}" if term.nil?
|
74
74
|
# URI Encode the term and build the URL
|
75
75
|
term = URI.escape("!#{term}", Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))
|
76
76
|
url = "http://magiccards.info/query?q=#{term}"
|
@@ -80,12 +80,11 @@ module Cinch::Plugins
|
|
80
80
|
|
81
81
|
# Grab the html block because magiccards.info fucking loves tables
|
82
82
|
# and hates helpful ids and classnames
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
end
|
83
|
+
return Cinch::Toolbox.get_html_element(url, '//table[3]/tr/td[2]', :xpath_full)
|
84
|
+
|
85
|
+
rescue
|
86
|
+
debug "Error looking up card: #{term}"
|
87
|
+
return nil
|
89
88
|
end
|
90
89
|
end
|
91
90
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Cinch::Plugins::Magic do
|
4
|
+
|
5
|
+
include Cinch::Test
|
6
|
+
|
7
|
+
before(:each) do
|
8
|
+
@bot = make_bot(Cinch::Plugins::Magic)
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'should allow users to lookup cards' do
|
12
|
+
get_replies(make_message(@bot, '!mtg forest')).first.
|
13
|
+
should include "[Magic] Forest [Basic Land, Forest] - ({T}: Add {G} to your mana pool.)"
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'should return an error when a card is not found' do
|
17
|
+
get_replies(make_message(@bot, '!mtg random string that is probably not a real card')).first.
|
18
|
+
should == '[Magic] Card not found, or problem fetching page.'
|
19
|
+
end
|
20
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cinch-magic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 1.0.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,17 +9,17 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-07-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
15
|
+
name: rake
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
20
20
|
- !ruby/object:Gem::Version
|
21
21
|
version: '0'
|
22
|
-
type: :
|
22
|
+
type: :development
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
none: false
|
@@ -28,14 +28,30 @@ dependencies:
|
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: '0'
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
|
-
name:
|
31
|
+
name: rspec
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
33
33
|
none: false
|
34
34
|
requirements:
|
35
35
|
- - ! '>='
|
36
36
|
- !ruby/object:Gem::Version
|
37
37
|
version: '0'
|
38
|
-
type: :
|
38
|
+
type: :development
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: coveralls
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
type: :development
|
39
55
|
prerelease: false
|
40
56
|
version_requirements: !ruby/object:Gem::Requirement
|
41
57
|
none: false
|
@@ -43,6 +59,70 @@ dependencies:
|
|
43
59
|
- - ! '>='
|
44
60
|
- !ruby/object:Gem::Version
|
45
61
|
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: cinch
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ~>
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 2.0.5
|
70
|
+
type: :runtime
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ~>
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 2.0.5
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: cinch-test
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ~>
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: 0.0.3
|
86
|
+
type: :runtime
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ~>
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 0.0.3
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: cinch-toolbox
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ~>
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: 1.0.2
|
102
|
+
type: :runtime
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ~>
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: 1.0.2
|
110
|
+
- !ruby/object:Gem::Dependency
|
111
|
+
name: cinch-cooldown
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
114
|
+
requirements:
|
115
|
+
- - ~>
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 1.0.0
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ~>
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: 1.0.0
|
46
126
|
description: Cinch Plugin that searches http://magiccards.info/ for card information.
|
47
127
|
email:
|
48
128
|
- bhaberer@gmail.com
|
@@ -51,6 +131,7 @@ extensions: []
|
|
51
131
|
extra_rdoc_files: []
|
52
132
|
files:
|
53
133
|
- .gitignore
|
134
|
+
- .travis.yml
|
54
135
|
- Gemfile
|
55
136
|
- LICENSE.txt
|
56
137
|
- README.md
|
@@ -59,6 +140,8 @@ files:
|
|
59
140
|
- lib/cinch-magic.rb
|
60
141
|
- lib/cinch/plugins/magic/magic.rb
|
61
142
|
- lib/cinch/plugins/magic/version.rb
|
143
|
+
- spec/cinch-magic_spec.rb
|
144
|
+
- spec/spec_helper.rb
|
62
145
|
homepage: https://github.com/bhaberer/cinch-magic
|
63
146
|
licenses: []
|
64
147
|
post_install_message:
|
@@ -79,8 +162,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
79
162
|
version: '0'
|
80
163
|
requirements: []
|
81
164
|
rubyforge_project:
|
82
|
-
rubygems_version: 1.8.
|
165
|
+
rubygems_version: 1.8.25
|
83
166
|
signing_key:
|
84
167
|
specification_version: 3
|
85
168
|
summary: Cinch Plugin for Magic Cards
|
86
|
-
test_files:
|
169
|
+
test_files:
|
170
|
+
- spec/cinch-magic_spec.rb
|
171
|
+
- spec/spec_helper.rb
|