mcinch 2.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (100) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +1 -0
  3. data/LICENSE +23 -0
  4. data/README.md +15 -0
  5. data/README_OLD.md +175 -0
  6. data/docs/bot_options.md +454 -0
  7. data/docs/changes.md +541 -0
  8. data/docs/common_mistakes.md +60 -0
  9. data/docs/common_tasks.md +57 -0
  10. data/docs/encodings.md +69 -0
  11. data/docs/events.md +273 -0
  12. data/docs/getting_started.md +184 -0
  13. data/docs/logging.md +90 -0
  14. data/docs/migrating.md +267 -0
  15. data/docs/plugins.md +4 -0
  16. data/docs/readme.md +20 -0
  17. data/examples/basic/autovoice.rb +32 -0
  18. data/examples/basic/google.rb +35 -0
  19. data/examples/basic/hello.rb +15 -0
  20. data/examples/basic/join_part.rb +34 -0
  21. data/examples/basic/memo.rb +39 -0
  22. data/examples/basic/msg.rb +16 -0
  23. data/examples/basic/seen.rb +36 -0
  24. data/examples/basic/urban_dict.rb +35 -0
  25. data/examples/basic/url_shorten.rb +35 -0
  26. data/examples/plugins/autovoice.rb +37 -0
  27. data/examples/plugins/custom_prefix.rb +23 -0
  28. data/examples/plugins/dice_roll.rb +38 -0
  29. data/examples/plugins/google.rb +36 -0
  30. data/examples/plugins/hello.rb +22 -0
  31. data/examples/plugins/hooks.rb +36 -0
  32. data/examples/plugins/join_part.rb +42 -0
  33. data/examples/plugins/lambdas.rb +35 -0
  34. data/examples/plugins/last_nick.rb +24 -0
  35. data/examples/plugins/msg.rb +22 -0
  36. data/examples/plugins/multiple_matches.rb +32 -0
  37. data/examples/plugins/own_events.rb +37 -0
  38. data/examples/plugins/seen.rb +45 -0
  39. data/examples/plugins/timer.rb +22 -0
  40. data/examples/plugins/url_shorten.rb +33 -0
  41. data/lib/cinch.rb +5 -0
  42. data/lib/cinch/ban.rb +50 -0
  43. data/lib/cinch/bot.rb +489 -0
  44. data/lib/cinch/cached_list.rb +19 -0
  45. data/lib/cinch/callback.rb +20 -0
  46. data/lib/cinch/channel.rb +463 -0
  47. data/lib/cinch/channel_list.rb +29 -0
  48. data/lib/cinch/configuration.rb +73 -0
  49. data/lib/cinch/configuration/bot.rb +48 -0
  50. data/lib/cinch/configuration/dcc.rb +16 -0
  51. data/lib/cinch/configuration/plugins.rb +41 -0
  52. data/lib/cinch/configuration/sasl.rb +19 -0
  53. data/lib/cinch/configuration/ssl.rb +19 -0
  54. data/lib/cinch/configuration/timeouts.rb +14 -0
  55. data/lib/cinch/constants.rb +533 -0
  56. data/lib/cinch/dcc.rb +12 -0
  57. data/lib/cinch/dcc/dccable_object.rb +37 -0
  58. data/lib/cinch/dcc/incoming.rb +1 -0
  59. data/lib/cinch/dcc/incoming/send.rb +147 -0
  60. data/lib/cinch/dcc/outgoing.rb +1 -0
  61. data/lib/cinch/dcc/outgoing/send.rb +122 -0
  62. data/lib/cinch/exceptions.rb +46 -0
  63. data/lib/cinch/formatting.rb +125 -0
  64. data/lib/cinch/handler.rb +118 -0
  65. data/lib/cinch/handler_list.rb +90 -0
  66. data/lib/cinch/helpers.rb +231 -0
  67. data/lib/cinch/irc.rb +972 -0
  68. data/lib/cinch/isupport.rb +98 -0
  69. data/lib/cinch/log_filter.rb +21 -0
  70. data/lib/cinch/logger.rb +168 -0
  71. data/lib/cinch/logger/formatted_logger.rb +97 -0
  72. data/lib/cinch/logger/zcbot_logger.rb +22 -0
  73. data/lib/cinch/logger_list.rb +85 -0
  74. data/lib/cinch/mask.rb +69 -0
  75. data/lib/cinch/message.rb +391 -0
  76. data/lib/cinch/message_queue.rb +107 -0
  77. data/lib/cinch/mode_parser.rb +76 -0
  78. data/lib/cinch/network.rb +104 -0
  79. data/lib/cinch/open_ended_queue.rb +26 -0
  80. data/lib/cinch/pattern.rb +65 -0
  81. data/lib/cinch/plugin.rb +515 -0
  82. data/lib/cinch/plugin_list.rb +38 -0
  83. data/lib/cinch/rubyext/float.rb +3 -0
  84. data/lib/cinch/rubyext/module.rb +26 -0
  85. data/lib/cinch/rubyext/string.rb +33 -0
  86. data/lib/cinch/sasl.rb +34 -0
  87. data/lib/cinch/sasl/dh_blowfish.rb +71 -0
  88. data/lib/cinch/sasl/diffie_hellman.rb +47 -0
  89. data/lib/cinch/sasl/mechanism.rb +6 -0
  90. data/lib/cinch/sasl/plain.rb +26 -0
  91. data/lib/cinch/syncable.rb +83 -0
  92. data/lib/cinch/target.rb +199 -0
  93. data/lib/cinch/timer.rb +145 -0
  94. data/lib/cinch/user.rb +488 -0
  95. data/lib/cinch/user_list.rb +87 -0
  96. data/lib/cinch/utilities/deprecation.rb +16 -0
  97. data/lib/cinch/utilities/encoding.rb +37 -0
  98. data/lib/cinch/utilities/kernel.rb +13 -0
  99. data/lib/cinch/version.rb +6 -0
  100. metadata +147 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 37108121c11dc18e765abdfe1519a18f626190fea084d30dbd8543998a236991
4
+ data.tar.gz: d37aada469d84848f531622c52f344cdd5af5f0c18756defbd7171642dbe23b4
5
+ SHA512:
6
+ metadata.gz: bd66441aac2d112dc6369d2a96d680b72570cc8ce8515bbfe6846c974b1285d80e32add68609af17134e3c7a70362f477a9bf2c304404af3f0cf8a51034d9cbf
7
+ data.tar.gz: 4bcb38a799bb5b9254d2dcd53fc09bd90973e8bb218e85e76ef2021e932abf8f34682e8957e3e1fd2e71feb75d18ffb3b3be609738ead0da916e50f753137c6b
@@ -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,23 @@
1
+ Copyright (c) 2010 Lee Jarvis, Dominik Honnef
2
+ Copyright (c) 2011 Dominik Honnef
3
+ Copyright (c) 2019 William Woodruff
4
+ Copyright (c) 2020 Kosuke Yamashita
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining
7
+ a copy of this software and associated documentation files (the
8
+ "Software"), to deal in the Software without restriction, including
9
+ without limitation the rights to use, copy, modify, merge, publish,
10
+ distribute, sublicense, and/or sell copies of the Software, and to
11
+ permit persons to whom the Software is furnished to do so, subject to
12
+ the following conditions:
13
+
14
+ The above copyright notice and this permission notice shall be
15
+ included in all copies or substantial portions of the Software.
16
+
17
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
21
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
22
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
23
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,15 @@
1
+ # mcinch
2
+
3
+ [![Build Status](https://travis-ci.com/ochaochaocha3/mcinch.svg?branch=master)](https://travis-ci.com/ochaochaocha3/mcinch)
4
+
5
+ mcinch is a fork of Cinch, the excellent IRC bot building framework written in Ruby by Dominik Honnef et al.
6
+ Please see [README\_OLD.md](README_OLD.md) for the summary of Cinch.
7
+
8
+ The aims of this project are:
9
+
10
+ * To make Cinch easy to embed it into another application.
11
+ * To modernize codes to fit them into newer Ruby (>= 2.5).
12
+
13
+ ## Changes from Cinch
14
+
15
+ Please see [CHANGELOG.md](CHANGELOG.md).
@@ -0,0 +1,175 @@
1
+ Cinch - The IRC Bot Building Framework
2
+ =====================================
3
+
4
+ **The Cinch project is no longer maintained. No new features will be
5
+ added, and no bugs will be fixed. The repository has been archived. If
6
+ you wish to continue developing Cinch, please fork the project. I am
7
+ not accepting new maintainers for this project.**
8
+
9
+ Description
10
+ -----------
11
+
12
+ Cinch is an IRC Bot Building Framework for quickly creating IRC bots in
13
+ Ruby with minimal effort. It provides a simple interface based on plugins and
14
+ rules. It's as easy as creating a plugin, defining a rule, and watching your
15
+ profits flourish.
16
+
17
+ Cinch will do all of the hard work for you, so you can spend time creating cool
18
+ plugins and extensions to wow your internet peers.
19
+
20
+ For general support, join #cinch channel on Freenode server (irc://irc.freenode.org/cinch) – but
21
+ please don't bring any bots.
22
+
23
+ Installation
24
+ ------------
25
+
26
+ ### RubyGems
27
+
28
+ You can install the latest Cinch gem using RubyGems
29
+
30
+ ```
31
+ gem install cinch
32
+ ```
33
+
34
+ ### GitHub
35
+
36
+ Alternatively you can check out the latest code directly from Github
37
+
38
+ ```
39
+ git clone http://github.com/cinchrb/cinch.git
40
+ ```
41
+
42
+ Example
43
+ -------
44
+
45
+ Your typical Hello, World application in Cinch would go something like this:
46
+
47
+ ```ruby
48
+ require 'cinch'
49
+
50
+ bot = Cinch::Bot.new do
51
+ configure do |c|
52
+ c.server = "irc.freenode.org"
53
+ c.channels = ["#cinch-bots"]
54
+ end
55
+
56
+ on :message, "hello" do |m|
57
+ m.reply "Hello, #{m.user.nick}"
58
+ end
59
+ end
60
+
61
+ bot.start
62
+ ```
63
+
64
+ More examples can be found in the `examples` directory.
65
+
66
+ Features
67
+ --------
68
+
69
+ ### Documentation
70
+
71
+ Cinch provides a documented API, which is online for your viewing pleasure
72
+ [here](http://rubydoc.info/gems/cinch/frames).
73
+
74
+ ### Object Oriented
75
+
76
+ Many IRC bots (and there are, **so** many) are great, but we see so little of
77
+ them take advantage of the awesome Object Oriented Interface which most Ruby
78
+ programmers will have become accustomed to and grown to love.
79
+
80
+ Well, Cinch uses this functionality to its advantage. Rather than having to
81
+ pass around a reference to a channel or a user, to another method, which then
82
+ passes it to another method (by which time you're confused about what's
83
+ going on) -- Cinch provides an OOP interface for even the simpliest of tasks,
84
+ making your code simple and easy to comprehend.
85
+
86
+ ### Threaded
87
+
88
+ Unlike a lot of popular IRC frameworks, Cinch is threaded. But wait, don't let
89
+ that scare you. It's totally easy to grasp.
90
+
91
+ Each of Cinch's plugins and handlers are executed in their own personal thread.
92
+ This means the main thread can stay focused on what it does best, providing
93
+ non-blocking reading and writing to an IRC server. This will prevent your bot
94
+ from locking up when one of your plugins starts doing some intense operations.
95
+ Damn that's handy.
96
+
97
+ ### Plugins
98
+
99
+ That's right folks, Cinch provides a modular based plugin system. This is a
100
+ feature many people have bugged us about for a long time. It's finally here,
101
+ and it's as awesome as you had hoped!
102
+
103
+ This system allows you to create feature packed plugins without interfering with
104
+ any of the Cinch internals. Everything in your plugin is self contained, meaning
105
+ you can share your favorite plugins among your friends and release a ton of
106
+ your own plugins for others to use
107
+
108
+ Want to see the same Hello, World application in plugin form? Sure you do!
109
+
110
+ ```ruby
111
+ require 'cinch'
112
+
113
+ class Hello
114
+ include Cinch::Plugin
115
+
116
+ match "hello"
117
+
118
+ def execute(m)
119
+ m.reply "Hello, #{m.user.nick}"
120
+ end
121
+ end
122
+
123
+ bot = Cinch::Bot.new do
124
+ configure do |c|
125
+ c.server = "irc.freenode.org"
126
+ c.channels = ["#cinch-bots"]
127
+ c.plugins.plugins = [Hello]
128
+ end
129
+ end
130
+
131
+ bot.start
132
+ ```
133
+
134
+ Note: Plugins take a default prefix of `/^!/` which means the actual match is `!hello`.
135
+
136
+ More information can be found in the {Cinch::Plugin} documentation.
137
+
138
+ ### Numeric Replies
139
+
140
+ Do you know what IRC code 401 represents? How about 376? or perhaps 502?
141
+ Sure you don't (and if you do, you're as geeky as us!). Cinch doesn't expect you
142
+ to store the entire IRC RFC code set in your head, and rightfully so!
143
+
144
+ That's exactly why Cinch has a ton of constants representing these numbers
145
+ so you don't have to remember them. We're so nice.
146
+
147
+ ### Pretty Output
148
+
149
+ Ever get fed up of watching those boring, frankly unreadable lines
150
+ flicker down your terminal screen whilst your bot is online? Help is
151
+ at hand! By default, Cinch will colorize all text it sends to a
152
+ terminal, meaning you get some pretty damn awesome readable coloured
153
+ text. Cinch also provides a way for your plugins to log custom
154
+ messages:
155
+
156
+ ```ruby
157
+ on :message, /hello/ do |m|
158
+ debug "Someone said hello"
159
+ end
160
+ ```
161
+
162
+ Contribute
163
+ ----------
164
+
165
+ Love Cinch? Love Ruby? Love helping? Of course you do! If you feel like Cinch
166
+ is missing that awesome jaw-dropping feature and you want to be the one to
167
+ make this magic happen, you can!
168
+
169
+ Please note that although we very much appreciate all of your efforts, Cinch
170
+ will not accept patches in aid of Ruby 1.8 compatibility. We have no intention
171
+ of supporting Ruby versions below 1.9.1.
172
+
173
+ Fork the project, implement your awesome feature in its own branch, and send
174
+ a pull request to one of the Cinch collaborators. We'll be more than happy
175
+ 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`.