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.
- checksums.yaml +7 -0
- data/.yardopts +1 -0
- data/LICENSE +22 -0
- data/README.md +180 -0
- data/docs/bot_options.md +454 -0
- data/docs/changes.md +541 -0
- data/docs/common_mistakes.md +60 -0
- data/docs/common_tasks.md +57 -0
- data/docs/encodings.md +69 -0
- data/docs/events.md +273 -0
- data/docs/getting_started.md +184 -0
- data/docs/logging.md +90 -0
- data/docs/migrating.md +267 -0
- data/docs/plugins.md +4 -0
- data/docs/readme.md +20 -0
- data/examples/basic/autovoice.rb +32 -0
- data/examples/basic/google.rb +35 -0
- data/examples/basic/hello.rb +15 -0
- data/examples/basic/join_part.rb +34 -0
- data/examples/basic/memo.rb +39 -0
- data/examples/basic/msg.rb +16 -0
- data/examples/basic/seen.rb +36 -0
- data/examples/basic/urban_dict.rb +35 -0
- data/examples/basic/url_shorten.rb +35 -0
- data/examples/plugins/autovoice.rb +37 -0
- data/examples/plugins/custom_prefix.rb +23 -0
- data/examples/plugins/dice_roll.rb +38 -0
- data/examples/plugins/google.rb +36 -0
- data/examples/plugins/hello.rb +22 -0
- data/examples/plugins/hooks.rb +36 -0
- data/examples/plugins/join_part.rb +42 -0
- data/examples/plugins/lambdas.rb +35 -0
- data/examples/plugins/last_nick.rb +24 -0
- data/examples/plugins/msg.rb +22 -0
- data/examples/plugins/multiple_matches.rb +32 -0
- data/examples/plugins/own_events.rb +37 -0
- data/examples/plugins/seen.rb +45 -0
- data/examples/plugins/timer.rb +22 -0
- data/examples/plugins/url_shorten.rb +33 -0
- data/lib/cinch.rb +5 -0
- data/lib/cinch/ban.rb +50 -0
- data/lib/cinch/bot.rb +479 -0
- data/lib/cinch/cached_list.rb +19 -0
- data/lib/cinch/callback.rb +20 -0
- data/lib/cinch/channel.rb +463 -0
- data/lib/cinch/channel_list.rb +29 -0
- data/lib/cinch/configuration.rb +73 -0
- data/lib/cinch/configuration/bot.rb +48 -0
- data/lib/cinch/configuration/dcc.rb +16 -0
- data/lib/cinch/configuration/plugins.rb +41 -0
- data/lib/cinch/configuration/sasl.rb +19 -0
- data/lib/cinch/configuration/ssl.rb +19 -0
- data/lib/cinch/configuration/timeouts.rb +14 -0
- data/lib/cinch/constants.rb +533 -0
- data/lib/cinch/dcc.rb +12 -0
- data/lib/cinch/dcc/dccable_object.rb +37 -0
- data/lib/cinch/dcc/incoming.rb +1 -0
- data/lib/cinch/dcc/incoming/send.rb +147 -0
- data/lib/cinch/dcc/outgoing.rb +1 -0
- data/lib/cinch/dcc/outgoing/send.rb +122 -0
- data/lib/cinch/exceptions.rb +46 -0
- data/lib/cinch/formatting.rb +125 -0
- data/lib/cinch/handler.rb +118 -0
- data/lib/cinch/handler_list.rb +90 -0
- data/lib/cinch/helpers.rb +231 -0
- data/lib/cinch/irc.rb +924 -0
- data/lib/cinch/isupport.rb +98 -0
- data/lib/cinch/log_filter.rb +21 -0
- data/lib/cinch/logger.rb +168 -0
- data/lib/cinch/logger/formatted_logger.rb +97 -0
- data/lib/cinch/logger/zcbot_logger.rb +22 -0
- data/lib/cinch/logger_list.rb +85 -0
- data/lib/cinch/mask.rb +69 -0
- data/lib/cinch/message.rb +392 -0
- data/lib/cinch/message_queue.rb +107 -0
- data/lib/cinch/mode_parser.rb +76 -0
- data/lib/cinch/network.rb +104 -0
- data/lib/cinch/open_ended_queue.rb +26 -0
- data/lib/cinch/pattern.rb +65 -0
- data/lib/cinch/plugin.rb +515 -0
- data/lib/cinch/plugin_list.rb +38 -0
- data/lib/cinch/rubyext/float.rb +3 -0
- data/lib/cinch/rubyext/module.rb +26 -0
- data/lib/cinch/rubyext/string.rb +33 -0
- data/lib/cinch/sasl.rb +34 -0
- data/lib/cinch/sasl/dh_blowfish.rb +71 -0
- data/lib/cinch/sasl/diffie_hellman.rb +47 -0
- data/lib/cinch/sasl/mechanism.rb +6 -0
- data/lib/cinch/sasl/plain.rb +26 -0
- data/lib/cinch/syncable.rb +83 -0
- data/lib/cinch/target.rb +199 -0
- data/lib/cinch/timer.rb +145 -0
- data/lib/cinch/user.rb +488 -0
- data/lib/cinch/user_list.rb +87 -0
- data/lib/cinch/utilities/deprecation.rb +16 -0
- data/lib/cinch/utilities/encoding.rb +37 -0
- data/lib/cinch/utilities/kernel.rb +13 -0
- data/lib/cinch/version.rb +4 -0
- 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.
|
data/docs/bot_options.md
ADDED
@@ -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`.
|