cinch-cleverbotredux 1.0 → 1.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # Cinch-CleverBotRedux
2
2
 
3
+ [![Gem Version](https://badge.fury.io/rb/cinch-cleverbotredux.svg)](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
- require "cinch"
54
- require "cinch/plugins/cleverbot"
55
-
56
- bot = Cinch::Bot.new do
57
- configure do |c|
58
- # Add all required options here
59
- c.plugins.plugins = [CleverBotRedux] # Optionally add more plugins
60
- end
61
- end
62
-
63
- bot.start
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.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "cinch-cleverbotredux"
5
- s.version = "1.0"
5
+ s.version = "1.1"
6
6
  s.platform = Gem::Platform::RUBY
7
7
  s.authors = ["Dorion Beaudin"]
8
8
  s.email = ["dorionbeaudin@live.ca"]
@@ -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
- msg_back = @cleverbot.write message
31
- m.reply(msg_back, @prefixUse)
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
- m.reply("Available commands for privileged users (voice and up): ~disablechatter, ~enablechatter", @prefixUse)
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
- m.reply("CleverBot already disabled.", @prefixUse)
44
- return
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
- m.reply("CleverBot disabled.", @prefixUse)
47
- @disabledChannels + ["#{m.channel}"]
48
- return
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
- m.reply("CleverBot already enabled.", @prefixUse)
57
- return
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
- m.reply("CleverBot enabled.", @prefixUse)
60
- @disabledChannels - ["#{m.channel}"]
61
- return
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
- m.reply("CleverBot is now globally disabled.", @prefixUse)
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
- m.reply("CleverBot is already globally disabled.", @prefixUse)
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
- m.reply("CleverBot is now globally enabled.", @prefixUse)
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
- m.reply("CleverBot is already globally enabled.", @prefixUse)
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.0'
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-04 00:00:00.000000000Z
12
+ date: 2014-04-05 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: cinch
16
- requirement: &21633792 !ruby/object:Gem::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: *21633792
24
+ version_requirements: *21354012
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: cleverbot
27
- requirement: &21633504 !ruby/object:Gem::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: *21633504
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.