cinch-cleverbotredux 1.0 → 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.
- data/README.md +25 -12
- data/cinch-cleverbotredux.gemspec +1 -1
- data/lib/cinch/plugins/cleverbotredux.rb +153 -22
- metadata +6 -6
data/README.md
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# Cinch-CleverBotRedux
|
2
2
|
|
3
|
+
[](http://badge.fury.io/rb/cinch-cleverbotredux)
|
4
|
+
|
3
5
|
## Description
|
4
6
|
|
5
7
|
A very simple plugin which provides an interface between the Cleverbot webserver, and Cinch. It comes with a number of features, including the option for Channel operators to disable the bot's CleverBot functions for that specific channel.
|
@@ -50,15 +52,26 @@ The following commands are available:
|
|
50
52
|
|
51
53
|
Install the gem and load it in your Cinch bot:
|
52
54
|
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
55
|
+
require 'cinch'
|
56
|
+
require 'cinch/plugins/cleverbotredux'
|
57
|
+
|
58
|
+
bot = Cinch::Bot.new do
|
59
|
+
configure do |c|
|
60
|
+
c.nick = 'cleverBot'
|
61
|
+
c.user = 'pcc31'
|
62
|
+
c.server = 'irc.example.org'
|
63
|
+
c.channels = ['#example']
|
64
|
+
c.plugins.plugins = [CleverBotRedux]
|
65
|
+
c.plugins.options = {
|
66
|
+
CleverBotRedux => {
|
67
|
+
:pesternetwork => false,
|
68
|
+
:defaultnick => c.nick
|
69
|
+
}
|
70
|
+
}
|
71
|
+
end
|
72
|
+
end
|
73
|
+
$end
|
74
|
+
|
75
|
+
bot.start
|
76
|
+
|
77
|
+
Note that you can pass the 'pesternetwork' argument, and the 'defaultnick' argument. This is for users of the Pesterchum irc server, that uses a different structure and a lot of colour codes. If you intend to use this with pesterchum, set this value to true, and also make sure that c.user is set to pcc31.
|
@@ -6,19 +6,51 @@ class CleverBotRedux
|
|
6
6
|
include Cinch::Plugin
|
7
7
|
|
8
8
|
match lambda { |m| /^#{m.bot.nick}: (.+)/i }, use_prefix: false
|
9
|
+
match(/<c=\d{1,3},\d{1,3},\d{1,3}>.{2}: CB: (.+)/ , use_prefix: false)
|
9
10
|
match "disablechatter", use_prefix: true, method: :disableChanChat
|
10
11
|
match "enablechatter", use_prefix: true, method: :enableChanChat
|
11
12
|
match "globaldisable", use_prefix: true, method: :globalDisable
|
12
13
|
match "globalenable", use_prefix: true, method: :globalEnable
|
13
14
|
match "chatterhelp", use_prefix: true, method: :chatterHelp
|
15
|
+
match(/^\/me!disablechatter (.+)/, use_prefix: false, method: :disableChanChat)
|
16
|
+
match(/^\/me!enablechatter (.+)/, use_prefix: false, method: :enableChanChat)
|
17
|
+
match(/^\/me!globaldisable (.+)/, use_prefix: false, method: :globalDisable)
|
18
|
+
match(/^\/me!globalenable (.+)/, use_prefix: false, method: :globalEnable)
|
19
|
+
match(/^\/me!chatterHelp (.+)/, use_prefix: false, method: :globalEnable)
|
20
|
+
|
14
21
|
|
15
22
|
def initialize(*args)
|
16
23
|
super
|
17
24
|
@admins = ["cExistential"]
|
18
25
|
@enabled = true
|
26
|
+
@pesterchum = config[:pesternetwork] || false
|
27
|
+
@defaultnick = config[:defaultnick] || "cleverBot"
|
28
|
+
regexp = /[A-Z]/
|
29
|
+
matched = regexp.match(@defaultnick)
|
30
|
+
if matched
|
31
|
+
matched = matched[0]
|
32
|
+
else
|
33
|
+
matched = "?"
|
34
|
+
end
|
35
|
+
@abbreviation = @defaultnick[0].chr.capitalize
|
36
|
+
@abbreviation << matched
|
37
|
+
@abbreviation << ": "
|
19
38
|
@prefixUse = true
|
20
39
|
@disabledChannels = Set.new
|
21
40
|
@cleverbot = Cleverbot::Client.new
|
41
|
+
colour1 = rand(200).to_s
|
42
|
+
colour1 << ','
|
43
|
+
colour2 = rand(200).to_s
|
44
|
+
colour2 << ','
|
45
|
+
colour3 = rand(200).to_s
|
46
|
+
combinedcolour = colour1
|
47
|
+
combinedcolour << colour2
|
48
|
+
combinedcolour << colour3
|
49
|
+
@defaultPrefix = "<c="
|
50
|
+
@defaultPrefix << combinedcolour
|
51
|
+
@defaultPrefix << ">"
|
52
|
+
@defaultPrefix << @abbreviation
|
53
|
+
@defaultSuffix = "<\/c>"
|
22
54
|
end
|
23
55
|
|
24
56
|
def execute(m, message)
|
@@ -27,59 +59,158 @@ class CleverBotRedux
|
|
27
59
|
return
|
28
60
|
else
|
29
61
|
if m.channel
|
30
|
-
|
31
|
-
|
62
|
+
if @pesterchum == true
|
63
|
+
#Pesterchum network compatibility
|
64
|
+
pesterString = message
|
65
|
+
prefix = @defaultPrefix.dup
|
66
|
+
suffix = @defaultSuffix.dup
|
67
|
+
pesterString.sub /<c=\d{1,3},\d{1,3},\d{1,3}>.{2}: /, ''
|
68
|
+
pesterString.sub /<\/c>/, ''
|
69
|
+
currentuser = m.user.to_s
|
70
|
+
regexp = /[A-Z]/
|
71
|
+
matched = regexp.match(currentuser)
|
72
|
+
if matched
|
73
|
+
matched = matched[0]
|
74
|
+
else
|
75
|
+
matched = "?"
|
76
|
+
end
|
77
|
+
prefix << currentuser[0].chr.capitalize
|
78
|
+
prefix << matched
|
79
|
+
prefix << ": "
|
80
|
+
msg_back = @cleverbot.write pesterString
|
81
|
+
tosend = prefix
|
82
|
+
tosend << msg_back << suffix
|
83
|
+
m.reply(tosend, false)
|
84
|
+
else
|
85
|
+
msg_back = @cleverbot.write message
|
86
|
+
m.reply(msg_back, @prefixUse)
|
87
|
+
end
|
32
88
|
end
|
33
89
|
end
|
34
90
|
end
|
35
91
|
|
36
|
-
def chatterHelp(m)
|
37
|
-
|
92
|
+
def chatterHelp(m, message)
|
93
|
+
prefix = @defaultPrefix.dup
|
94
|
+
suffix = @defaultSuffix.dup
|
95
|
+
if @pesterchum == false
|
96
|
+
m.reply("Available commands for privileged users (voice and up): ~disablechatter, ~enablechatter", @prefixUse)
|
97
|
+
else
|
98
|
+
tosend = prefix
|
99
|
+
tosend << "Available commands for privileged users (voice and up): ~disablechatter, ~enablechatter"
|
100
|
+
tosend << suffix
|
101
|
+
m.reply(tosend, false)
|
102
|
+
end
|
38
103
|
end
|
39
104
|
|
40
|
-
def disableChanChat(m)
|
105
|
+
def disableChanChat(m, message)
|
106
|
+
prefix = @defaultPrefix.dup
|
107
|
+
suffix = @defaultSuffix.dup
|
41
108
|
if m.channel.opped?(m.user) or m.channel.half_opped?(m.user) or m.channel.voiced?(m.user)
|
42
109
|
if @disabledChannels.add?(m.channel) == nil
|
43
|
-
|
44
|
-
|
110
|
+
if @pesterchum == false
|
111
|
+
m.reply("CleverBot already disabled.", @prefixUse)
|
112
|
+
return
|
113
|
+
else
|
114
|
+
tosend = prefix
|
115
|
+
tosend << "CleverBot already disabled."
|
116
|
+
tosend << suffix
|
117
|
+
m.reply(tosend, false)
|
118
|
+
end
|
45
119
|
else
|
46
|
-
|
47
|
-
|
48
|
-
|
120
|
+
if @pesterchum == false
|
121
|
+
m.reply("CleverBot disabled.", @prefixUse)
|
122
|
+
@disabledChannels + ["#{m.channel}"]
|
123
|
+
return
|
124
|
+
else
|
125
|
+
tosend = prefix
|
126
|
+
tosend << "CleverBot disabled."
|
127
|
+
tosend << suffix
|
128
|
+
m.reply(tosend, false)
|
129
|
+
@disabledChannels + ["#{m.channel}"]
|
130
|
+
end
|
49
131
|
end
|
50
132
|
end
|
51
133
|
end
|
52
134
|
|
53
|
-
def enableChanChat(m)
|
135
|
+
def enableChanChat(m, message)
|
136
|
+
prefix = @defaultPrefix.dup
|
137
|
+
suffix = @defaultSuffix.dup
|
54
138
|
if m.channel.opped?(m.user) or m.channel.half_opped?(m.user) or m.channel.voiced?(m.user)
|
55
139
|
if @disabledChannels.delete?(m.channel) == nil
|
56
|
-
|
57
|
-
|
140
|
+
if @pesterchum == false
|
141
|
+
m.reply("CleverBot already enabled.", @prefixUse)
|
142
|
+
return
|
143
|
+
else
|
144
|
+
tosend = prefix
|
145
|
+
tosend << "CleverBot already enabled."
|
146
|
+
tosend << suffix
|
147
|
+
m.reply(tosend, false)
|
148
|
+
end
|
58
149
|
else
|
59
|
-
|
60
|
-
|
61
|
-
|
150
|
+
if @pesterchum == false
|
151
|
+
m.reply("CleverBot enabled.", @prefixUse)
|
152
|
+
@disabledChannels - ["#{m.channel}"]
|
153
|
+
return
|
154
|
+
else
|
155
|
+
tosend = prefix
|
156
|
+
tosend << "CleverBot enabled."
|
157
|
+
tosend << suffix
|
158
|
+
m.reply(tosend, false)
|
159
|
+
@disabledChannels - ["#{m.channel}"]
|
160
|
+
end
|
62
161
|
end
|
63
162
|
end
|
64
163
|
end
|
65
164
|
|
66
|
-
def globalDisable(m)
|
165
|
+
def globalDisable(m, message)
|
166
|
+
prefix = @defaultPrefix.dup
|
167
|
+
suffix = @defaultSuffix.dup
|
67
168
|
return unless check_user(m.user)
|
68
169
|
if @enabled == true
|
69
170
|
@enabled = false
|
70
|
-
|
171
|
+
if @pesterchum == false
|
172
|
+
m.reply("CleverBot is now globally disabled.", @prefixUse)
|
173
|
+
else
|
174
|
+
tosend = prefix
|
175
|
+
tosend << "CleverBot is now globally disabled."
|
176
|
+
tosend << suffix
|
177
|
+
m.reply(tosend, false)
|
178
|
+
end
|
71
179
|
else
|
72
|
-
|
180
|
+
if @pesterchum == false
|
181
|
+
m.reply("CleverBot is already globally disabled.", @prefixUse)
|
182
|
+
else
|
183
|
+
tosend = prefix
|
184
|
+
tosend << "CleverBot is already globally disabled."
|
185
|
+
tosend << suffix
|
186
|
+
m.reply(tosend, false)
|
187
|
+
end
|
73
188
|
end
|
74
189
|
end
|
75
190
|
|
76
|
-
def globalEnable(m)
|
191
|
+
def globalEnable(m, message)
|
192
|
+
prefix = @defaultPrefix.dup
|
193
|
+
suffix = @defaultSuffix.dup
|
77
194
|
return unless check_user(m.user)
|
78
195
|
if @enabled == false
|
79
196
|
@enabled = true
|
80
|
-
|
197
|
+
if @pesterchum == false
|
198
|
+
m.reply("CleverBot is now globally enabled.", @prefixUse)
|
199
|
+
else
|
200
|
+
tosend = prefix
|
201
|
+
tosend << "CleverBot is now globally enabled."
|
202
|
+
tosend << suffix
|
203
|
+
m.reply(tosend, false)
|
204
|
+
end
|
81
205
|
else
|
82
|
-
|
206
|
+
if @pesterchum == false
|
207
|
+
m.reply("CleverBot is already globally enabled.", @prefixUse)
|
208
|
+
else
|
209
|
+
tosend = prefix
|
210
|
+
tosend << "CleverBot is already globally enabled."
|
211
|
+
tosend << suffix
|
212
|
+
m.reply(tosend, false)
|
213
|
+
end
|
83
214
|
end
|
84
215
|
end
|
85
216
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cinch-cleverbotredux
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '1.
|
4
|
+
version: '1.1'
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-04-
|
12
|
+
date: 2014-04-05 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: cinch
|
16
|
-
requirement: &
|
16
|
+
requirement: &21354012 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 2.1.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *21354012
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: cleverbot
|
27
|
-
requirement: &
|
27
|
+
requirement: &21353724 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,7 +32,7 @@ dependencies:
|
|
32
32
|
version: 0.2.0
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *21353724
|
36
36
|
description: This plugin contains an interface to permit users to interact with Cleverbot.
|
37
37
|
It also contains several admin-friendly functions, should the bot become annoying
|
38
38
|
on a channel.
|