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 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.