grinch 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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`.