grinch 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.
Files changed (99) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +1 -0
  3. data/LICENSE +22 -0
  4. data/README.md +180 -0
  5. data/docs/bot_options.md +454 -0
  6. data/docs/changes.md +541 -0
  7. data/docs/common_mistakes.md +60 -0
  8. data/docs/common_tasks.md +57 -0
  9. data/docs/encodings.md +69 -0
  10. data/docs/events.md +273 -0
  11. data/docs/getting_started.md +184 -0
  12. data/docs/logging.md +90 -0
  13. data/docs/migrating.md +267 -0
  14. data/docs/plugins.md +4 -0
  15. data/docs/readme.md +20 -0
  16. data/examples/basic/autovoice.rb +32 -0
  17. data/examples/basic/google.rb +35 -0
  18. data/examples/basic/hello.rb +15 -0
  19. data/examples/basic/join_part.rb +34 -0
  20. data/examples/basic/memo.rb +39 -0
  21. data/examples/basic/msg.rb +16 -0
  22. data/examples/basic/seen.rb +36 -0
  23. data/examples/basic/urban_dict.rb +35 -0
  24. data/examples/basic/url_shorten.rb +35 -0
  25. data/examples/plugins/autovoice.rb +37 -0
  26. data/examples/plugins/custom_prefix.rb +23 -0
  27. data/examples/plugins/dice_roll.rb +38 -0
  28. data/examples/plugins/google.rb +36 -0
  29. data/examples/plugins/hello.rb +22 -0
  30. data/examples/plugins/hooks.rb +36 -0
  31. data/examples/plugins/join_part.rb +42 -0
  32. data/examples/plugins/lambdas.rb +35 -0
  33. data/examples/plugins/last_nick.rb +24 -0
  34. data/examples/plugins/msg.rb +22 -0
  35. data/examples/plugins/multiple_matches.rb +32 -0
  36. data/examples/plugins/own_events.rb +37 -0
  37. data/examples/plugins/seen.rb +45 -0
  38. data/examples/plugins/timer.rb +22 -0
  39. data/examples/plugins/url_shorten.rb +33 -0
  40. data/lib/cinch.rb +5 -0
  41. data/lib/cinch/ban.rb +50 -0
  42. data/lib/cinch/bot.rb +479 -0
  43. data/lib/cinch/cached_list.rb +19 -0
  44. data/lib/cinch/callback.rb +20 -0
  45. data/lib/cinch/channel.rb +463 -0
  46. data/lib/cinch/channel_list.rb +29 -0
  47. data/lib/cinch/configuration.rb +73 -0
  48. data/lib/cinch/configuration/bot.rb +48 -0
  49. data/lib/cinch/configuration/dcc.rb +16 -0
  50. data/lib/cinch/configuration/plugins.rb +41 -0
  51. data/lib/cinch/configuration/sasl.rb +19 -0
  52. data/lib/cinch/configuration/ssl.rb +19 -0
  53. data/lib/cinch/configuration/timeouts.rb +14 -0
  54. data/lib/cinch/constants.rb +533 -0
  55. data/lib/cinch/dcc.rb +12 -0
  56. data/lib/cinch/dcc/dccable_object.rb +37 -0
  57. data/lib/cinch/dcc/incoming.rb +1 -0
  58. data/lib/cinch/dcc/incoming/send.rb +147 -0
  59. data/lib/cinch/dcc/outgoing.rb +1 -0
  60. data/lib/cinch/dcc/outgoing/send.rb +122 -0
  61. data/lib/cinch/exceptions.rb +46 -0
  62. data/lib/cinch/formatting.rb +125 -0
  63. data/lib/cinch/handler.rb +118 -0
  64. data/lib/cinch/handler_list.rb +90 -0
  65. data/lib/cinch/helpers.rb +231 -0
  66. data/lib/cinch/irc.rb +924 -0
  67. data/lib/cinch/isupport.rb +98 -0
  68. data/lib/cinch/log_filter.rb +21 -0
  69. data/lib/cinch/logger.rb +168 -0
  70. data/lib/cinch/logger/formatted_logger.rb +97 -0
  71. data/lib/cinch/logger/zcbot_logger.rb +22 -0
  72. data/lib/cinch/logger_list.rb +85 -0
  73. data/lib/cinch/mask.rb +69 -0
  74. data/lib/cinch/message.rb +392 -0
  75. data/lib/cinch/message_queue.rb +107 -0
  76. data/lib/cinch/mode_parser.rb +76 -0
  77. data/lib/cinch/network.rb +104 -0
  78. data/lib/cinch/open_ended_queue.rb +26 -0
  79. data/lib/cinch/pattern.rb +65 -0
  80. data/lib/cinch/plugin.rb +515 -0
  81. data/lib/cinch/plugin_list.rb +38 -0
  82. data/lib/cinch/rubyext/float.rb +3 -0
  83. data/lib/cinch/rubyext/module.rb +26 -0
  84. data/lib/cinch/rubyext/string.rb +33 -0
  85. data/lib/cinch/sasl.rb +34 -0
  86. data/lib/cinch/sasl/dh_blowfish.rb +71 -0
  87. data/lib/cinch/sasl/diffie_hellman.rb +47 -0
  88. data/lib/cinch/sasl/mechanism.rb +6 -0
  89. data/lib/cinch/sasl/plain.rb +26 -0
  90. data/lib/cinch/syncable.rb +83 -0
  91. data/lib/cinch/target.rb +199 -0
  92. data/lib/cinch/timer.rb +145 -0
  93. data/lib/cinch/user.rb +488 -0
  94. data/lib/cinch/user_list.rb +87 -0
  95. data/lib/cinch/utilities/deprecation.rb +16 -0
  96. data/lib/cinch/utilities/encoding.rb +37 -0
  97. data/lib/cinch/utilities/kernel.rb +13 -0
  98. data/lib/cinch/version.rb +4 -0
  99. metadata +140 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 42bdf33a559d3d5eb8554340981ca88fc329085886c870db0af86eb651d21ccb
4
+ data.tar.gz: 7b793e554505585038fb85cc83a3d0a0b42381898bf0935af4d44ba2c4369ff0
5
+ SHA512:
6
+ metadata.gz: d82d81004649adea9f10e9996f24e4fca7411718d2877125e5ff66f49533a1f9b3867926072913198e336cab28829b8238712cf8b9d6df874aae6f0a3610c10b
7
+ data.tar.gz: ee26329f1ae9592b2f68beb3c463f86fef9fd76af4d3982ed68008dc5efff364e4f701c4960d6676325fcf35ee3b1edd44fb4a32ec37320c2966be7d3932d672
data/.yardopts ADDED
@@ -0,0 +1 @@
1
+ --hide-void-return -m kramdown --verbose --no-private --asset docs/images:images --readme docs/readme.md --plugin kramdown - docs/**/*.md
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2010 Lee Jarvis, Dominik Honnef
2
+ Copyright (c) 2011 Dominik Honnef
3
+ Copyright (c) 2019 William Woodruff
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,180 @@
1
+ Grinch - The IRC Bot Building Framework
2
+ =====================================
3
+
4
+ **WARNING!**
5
+
6
+ Grinch is a *lightly* maintained fork of [Cinch](https://github.com/cinchrb/cinch/), which
7
+ is no longer maintained. It has three primary development goals:
8
+
9
+ 1. To remain (mostly) API compatible with Cinch
10
+ 2. To fix security and usability bugs
11
+ 3. To function with currently maintained versions of Ruby
12
+
13
+
14
+ Description
15
+ -----------
16
+
17
+ Grinch is an IRC Bot Building Framework for quickly creating IRC bots in
18
+ Ruby with minimal effort. It provides a simple interface based on plugins and
19
+ rules. It's as easy as creating a plugin, defining a rule, and watching your
20
+ profits flourish.
21
+
22
+ Grinch will do all of the hard work for you, so you can spend time creating cool
23
+ plugins and extensions to wow your internet peers.
24
+
25
+ For general support, join #cinch channel on Freenode server (irc://irc.freenode.org/cinch) – but
26
+ please don't bring any bots.
27
+
28
+ Installation
29
+ ------------
30
+
31
+ ### RubyGems
32
+
33
+ You can install the latest Grinch gem using RubyGems
34
+
35
+ ```
36
+ gem install cinch
37
+ ```
38
+
39
+ ### GitHub
40
+
41
+ Alternatively you can check out the latest code directly from Github
42
+
43
+ ```
44
+ git clone https://github.com/woodruffw/grinch
45
+ ```
46
+
47
+ Example
48
+ -------
49
+
50
+ Your typical Hello, World application in Cinch would go something like this:
51
+
52
+ ```ruby
53
+ require 'cinch'
54
+
55
+ bot = Cinch::Bot.new do
56
+ configure do |c|
57
+ c.server = "irc.freenode.org"
58
+ c.channels = ["#cinch-bots"]
59
+ end
60
+
61
+ on :message, "hello" do |m|
62
+ m.reply "Hello, #{m.user.nick}"
63
+ end
64
+ end
65
+
66
+ bot.start
67
+ ```
68
+
69
+ More examples can be found in the `examples` directory.
70
+
71
+ Features
72
+ --------
73
+
74
+ ### Documentation
75
+
76
+ Grinch provides a documented API, which is online for your viewing pleasure
77
+ [here](http://rubydoc.info/gems/cinch/frames).
78
+
79
+ ### Object Oriented
80
+
81
+ Many IRC bots (and there are, **so** many) are great, but we see so little of
82
+ them take advantage of the awesome Object Oriented Interface which most Ruby
83
+ programmers will have become accustomed to and grown to love.
84
+
85
+ Well, Grinch uses this functionality to its advantage. Rather than having to
86
+ pass around a reference to a channel or a user, to another method, which then
87
+ passes it to another method (by which time you're confused about what's
88
+ going on) -- Grinch provides an OOP interface for even the simpliest of tasks,
89
+ making your code simple and easy to comprehend.
90
+
91
+ ### Threaded
92
+
93
+ Unlike a lot of popular IRC frameworks, Grinch is threaded. But wait, don't let
94
+ that scare you. It's totally easy to grasp.
95
+
96
+ Each of Grinch's plugins and handlers are executed in their own personal thread.
97
+ This means the main thread can stay focused on what it does best, providing
98
+ non-blocking reading and writing to an IRC server. This will prevent your bot
99
+ from locking up when one of your plugins starts doing some intense operations.
100
+ Damn that's handy.
101
+
102
+ ### Plugins
103
+
104
+ That's right folks, Grinch provides a modular based plugin system. This is a
105
+ feature many people have bugged us about for a long time. It's finally here,
106
+ and it's as awesome as you had hoped!
107
+
108
+ This system allows you to create feature packed plugins without interfering with
109
+ any of the Grinch internals. Everything in your plugin is self contained, meaning
110
+ you can share your favorite plugins among your friends and release a ton of
111
+ your own plugins for others to use
112
+
113
+ Want to see the same Hello, World application in plugin form? Sure you do!
114
+
115
+ ```ruby
116
+ require 'cinch'
117
+
118
+ class Hello
119
+ include Cinch::Plugin
120
+
121
+ match "hello"
122
+
123
+ def execute(m)
124
+ m.reply "Hello, #{m.user.nick}"
125
+ end
126
+ end
127
+
128
+ bot = Cinch::Bot.new do
129
+ configure do |c|
130
+ c.server = "irc.freenode.org"
131
+ c.channels = ["#cinch-bots"]
132
+ c.plugins.plugins = [Hello]
133
+ end
134
+ end
135
+
136
+ bot.start
137
+ ```
138
+
139
+ Note: Plugins take a default prefix of `/^!/` which means the actual match is `!hello`.
140
+
141
+ More information can be found in the {Cinch::Plugin} documentation.
142
+
143
+ ### Numeric Replies
144
+
145
+ Do you know what IRC code 401 represents? How about 376? or perhaps 502?
146
+ Sure you don't (and if you do, you're as geeky as us!). Grinch doesn't expect you
147
+ to store the entire IRC RFC code set in your head, and rightfully so!
148
+
149
+ That's exactly why Grinch has a ton of constants representing these numbers
150
+ so you don't have to remember them. We're so nice.
151
+
152
+ ### Pretty Output
153
+
154
+ Ever get fed up of watching those boring, frankly unreadable lines
155
+ flicker down your terminal screen whilst your bot is online? Help is
156
+ at hand! By default, Grinch will colorize all text it sends to a
157
+ terminal, meaning you get some pretty damn awesome readable coloured
158
+ text. Grinch also provides a way for your plugins to log custom
159
+ messages:
160
+
161
+ ```ruby
162
+ on :message, /hello/ do |m|
163
+ debug "Someone said hello"
164
+ end
165
+ ```
166
+
167
+ Contribute
168
+ ----------
169
+
170
+ Love Grinch? Love Ruby? Love helping? Of course you do! If you feel like Grinch
171
+ is missing that awesome jaw-dropping feature and you want to be the one to
172
+ make this magic happen, you can!
173
+
174
+ Please note that although we very much appreciate all of your efforts, Grinch
175
+ will not accept patches in aid of Ruby 1.8 compatibility. We have no intention
176
+ of supporting Ruby versions below 1.9.1.
177
+
178
+ Fork the project, implement your awesome feature in its own branch, and send
179
+ a pull request to one of the Grinch collaborators. We'll be more than happy
180
+ to check it out.
@@ -0,0 +1,454 @@
1
+ # @title Bot options
2
+ # @markup kramdown
3
+
4
+ # Options
5
+
6
+ ## channels
7
+ Type
8
+ : Array<String>
9
+
10
+ Default value
11
+ : `[]`
12
+
13
+ Description
14
+ : Channels in this list will be joined upon connecting.
15
+
16
+
17
+ ### Notes
18
+ - To automatically join password-protected channels, just append the
19
+ password to the channel's name, separated by a space, e.g.
20
+ `"#mychannel mypassword"`.
21
+
22
+ ## dcc
23
+
24
+ ### dcc.own_ip
25
+ Type
26
+ : String
27
+
28
+ Default value
29
+ : `nil`
30
+
31
+ Description
32
+ : The external IP which should be used for outgoing DCC SENDs. For
33
+ more information see {Cinch::DCC::Outgoing::Send}.
34
+
35
+ ## delay_joins
36
+ Type
37
+ : Number, Symbol
38
+
39
+ Default value
40
+ : `0`
41
+
42
+ Description
43
+ : Delay joining channels N seconds after connecting, or until the event S fires.
44
+
45
+ ### Notes
46
+ - This is especially useful in combination with the /cinch-identify/ plugin, which will trigger the `:identified` event.
47
+
48
+ ## encoding
49
+ Type
50
+ : String, Encoding
51
+
52
+ Default value
53
+ : `:irc`
54
+
55
+ Description
56
+ : This determines which encoding text received from IRC will have.
57
+
58
+
59
+ ### Notes
60
+ - {file:docs/encodings.md More information on how Cinch handles encoding issues}
61
+
62
+ ## local_host
63
+ Type
64
+ : String
65
+
66
+ Default value
67
+ : `nil`
68
+
69
+ Description
70
+ : Which IP/host to bind to when connecting. This is useful for using
71
+ so called "vhosts".
72
+
73
+ ## max_messages
74
+ Type
75
+ : Fixnum
76
+
77
+ Default value
78
+ : `nil`
79
+
80
+ Description
81
+ : When an overlong message gets split, only `max_messages` parts will
82
+ be sent to the recipient.
83
+
84
+
85
+ ### Notes
86
+ - Set this option to `nil` to disable any limit.
87
+
88
+ ## max_reconnect_delay
89
+ Type
90
+ : Fixnum
91
+
92
+ Default value
93
+ : `300`
94
+
95
+ Descriptipn
96
+ : With every unsuccessful reconnection attempt, Cinch increases the
97
+ delay between new attempts. This setting is the maximum number of
98
+ seconds to wait between two attempts.
99
+
100
+ ## messages_per_second
101
+ Type
102
+ : Float
103
+
104
+ Default value
105
+ : Network dependent
106
+
107
+ Description
108
+ : How many incoming messages the server processes per second. This is
109
+ used for throttling.
110
+
111
+
112
+ ### Notes
113
+ - If your bot gets kicked for excess flood, try lowering the value of
114
+ `messages_per_second`.
115
+ - See also: {file:docs/bot_options.md#serverqueuesize `server_queue_size`}
116
+
117
+ ## message_split_end
118
+ Type
119
+ : String
120
+
121
+ Default value
122
+ : `" ..."`
123
+
124
+ Description
125
+ : When a message is too long to be sent as a whole, it will be split
126
+ and the value of this option will be appended to all but the last
127
+ parts of the message.
128
+
129
+
130
+ ## message_split_start
131
+ Type
132
+ : String
133
+
134
+ Default value
135
+ : `"... "`
136
+
137
+ Description
138
+ : When a message is too long to be sent as a whole, it will be split
139
+ and the value of this option will be prepended to all but the first
140
+ parts of the message.
141
+
142
+ ## modes
143
+ Type
144
+ : Array<String>
145
+
146
+ Default value
147
+ : []
148
+
149
+ Description
150
+ : An array of modes the bot should set on itself after connecting.
151
+
152
+ ## nick
153
+ Type
154
+ : String
155
+
156
+ Default value
157
+ : `"cinch"`
158
+
159
+ Description
160
+ : The nickname the bot will use.
161
+
162
+
163
+ ### Notes
164
+ - If the nickname is in use, Cinch will append underscores until it
165
+ finds a free nick.
166
+ - You really should set this option instead of using the default.
167
+
168
+ ## nicks
169
+ Type
170
+ : Array<String>
171
+
172
+ Default value
173
+ : `nil`
174
+
175
+ Description
176
+ : This option overrules {file:docs/bot_options.md#nick `nick`} and allows Cinch
177
+ to try multiple nicks before adding underscores.
178
+
179
+
180
+ ## password
181
+ Type
182
+ : String
183
+
184
+ Default value
185
+ : `nil`
186
+
187
+ Description
188
+ : A server password for access to private servers.
189
+
190
+
191
+ ### Notes
192
+ - Some networks allow you to use the server password for
193
+ authenticating with services (e.g. NickServ).
194
+
195
+
196
+ ## ping_interval
197
+ Type
198
+ : Number
199
+
200
+ Default value
201
+ : `120`
202
+
203
+ Description
204
+ : The server will be pinged every X seconds, to keep the connection
205
+ alive.
206
+
207
+
208
+ ### Notes
209
+ - The ping interval should be smaller than
210
+ {file:docs/bot_options.md#timeoutsread `timeouts.read`} to prevent Cinch from
211
+ falsely declaring a connection dead.
212
+
213
+
214
+ ## plugins
215
+
216
+ ### plugins.plugins
217
+ Type
218
+ : Array<Class>
219
+
220
+ Default value
221
+ : `[]`
222
+
223
+ Description
224
+ : A list of plugins to register.
225
+
226
+
227
+ #### Notes
228
+ - An example: `[Plugin1, Plugin2, Plugin3]` -- Note that we are adding
229
+ the plugin **classes** to the list.
230
+
231
+ ### plugins.prefix
232
+ Type
233
+ : String, Regexp, Lambda
234
+
235
+ Default value
236
+ : `/^!/`
237
+
238
+ Description
239
+ : A prefix that will be prepended to all plugin commands.
240
+
241
+
242
+ ### plugins.suffix
243
+ Type
244
+ : String, Regexp, Lambda
245
+
246
+ Default value
247
+ : `nil`
248
+
249
+ Description
250
+ : A suffix that will be appended to all plugin commands.
251
+
252
+
253
+
254
+ ### plugins.options
255
+ Type
256
+ : Hash
257
+
258
+ Default value
259
+ : `Hash.new {|h,k| h[k] = {}}`
260
+
261
+ Description
262
+ : Options specific to plugins.
263
+
264
+
265
+ #### Notes
266
+ - Information on plugins and options for those will be made available
267
+ in a separate document soon.
268
+
269
+
270
+ ## port
271
+ Type
272
+ : Fixnum
273
+
274
+ Default value
275
+ : `6667`
276
+
277
+ Description
278
+ : The port the IRC server is listening on
279
+
280
+
281
+ ## realname
282
+ Type
283
+ : String
284
+
285
+ Default value
286
+ : `"cinch"`
287
+
288
+ Description
289
+ : The real name Cinch will connect with.
290
+
291
+ ## reconnect
292
+ Type
293
+ : Boolean
294
+
295
+ Default value
296
+ : `true`
297
+
298
+ Description
299
+ : Should Cinch attempt to reconnect after a connection loss?
300
+
301
+ ## sasl
302
+
303
+ ### sasl.username
304
+ Type
305
+ : String
306
+
307
+ Default value
308
+ : `nil`
309
+
310
+ Description
311
+ : The username to use for SASL authentication.
312
+
313
+ ### sasl.password
314
+ Type
315
+ : String
316
+
317
+ Default value
318
+ : `nil`
319
+
320
+ Description
321
+ : The password to use for SASL authentication.
322
+
323
+ ### sasl.mechanisms
324
+ Type
325
+ : Array<Cinch::SASL::Mechanism>
326
+
327
+ Default value
328
+ : `[Cinch::SASL::DH_Blowfish, Cinch::SASL::Plain]`
329
+
330
+ Description
331
+ : The SASL mechanisms to use. All mechanisms in the array will be
332
+ attempted, until one was successful
333
+
334
+ ## server
335
+ Type
336
+ : String
337
+
338
+ Default value
339
+ : `"localhost"`
340
+
341
+ Description
342
+ : The IRC server to connect to
343
+
344
+
345
+ ## server_queue_size
346
+ Type
347
+ : Fixnum
348
+
349
+ Default value
350
+ : Network dependent
351
+
352
+ Description
353
+ : The number of incoming messages the server will queue, before
354
+ killing the bot for excess flood.
355
+
356
+
357
+ ### Notes
358
+ - If your bot gets kicked for excess flood, try lowering the value of
359
+ `server_queue_size`.
360
+ - See also: {file:docs/bot_options.md#messagespersecond `messages_per_second`}
361
+
362
+ ## ssl
363
+
364
+ ### ssl.use
365
+ Type
366
+ : Boolean
367
+
368
+ Default value
369
+ : `false`
370
+
371
+ Description
372
+ : Sets if SSL should be used
373
+
374
+ ### ssl.verify
375
+ Type
376
+ : Boolean
377
+
378
+ Default value
379
+ : `false`
380
+
381
+ Description
382
+ : Sets if the SSL certificate should be verified
383
+
384
+
385
+ ### ssl.ca_path
386
+ Type
387
+ : String
388
+
389
+ Default value
390
+ : `"/etc/ssl/certs"`
391
+
392
+ Description
393
+ : The path to a directory with certificates. This has to be set
394
+ properly for {file:docs/bot_options.md#sslverify `ssl.verify`} to work.
395
+
396
+
397
+ ### ssl.client_cert
398
+ Type
399
+ : String
400
+
401
+ Default value
402
+ : `nil`
403
+
404
+ Description
405
+ : The path to a client certificate, which some networks can use for
406
+ authentication (see {http://www.oftc.net/oftc/NickServ/CertFP})
407
+
408
+
409
+ #### Notes
410
+ - You will want to set the correct port when using SSL
411
+
412
+ ## user
413
+ Type
414
+ : String
415
+
416
+ Default value
417
+ : `"cinch"`
418
+
419
+ Description
420
+ : The user name to use when connecting to the IRC server.
421
+
422
+ ## timeouts
423
+
424
+ ### timeouts.read
425
+ Type
426
+ : Number
427
+
428
+ Default value
429
+ : `240`
430
+
431
+ Description
432
+ : If no data has been received for this amount of seconds, the
433
+ connection will be considered dead.
434
+
435
+
436
+ ### timeouts.connect
437
+ Type
438
+ : Number
439
+
440
+ Default value
441
+ : `10`
442
+
443
+ Description
444
+ : Give up connecting after this amount of seconds.
445
+
446
+ ## default_logger_level
447
+ Type
448
+ : Symbol
449
+
450
+ Default value
451
+ : `:debug`
452
+
453
+ Description
454
+ : Modify the log level of the default logger, for instance, the bot will log very little if you set this value to `:fatal`.