forked from cinchrb/cinch
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeLog
139 lines (132 loc) · 7.6 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
* Cinch 1.1.3, 12 May 2011
- PRIVMSGs can now be matched with the event :privmsg (additionally
to :message, :private and :channel)
- Moved execution of the configure block further up the chain, to
allow setting the logger before any log output is happening
* Cinch 1.1.2, 02 March 2011
- Fix Mask#match (it was completly unusable in v1.1.0 and later)
- Fix User#find_ensured (it was completly unusable in v1.1.0 and later; note
however that this method is deprecated)
- Fix Channel#has_user? (it was completly unusable in v1.1.0 and later)
- Support the question mark as a globbing character in ban masks.
Before, only the asterisk was supported.
- Fix !help <plugin> – Since v1.1.0 it was not possible to use !help
if the plugin prefix was not a plain string.
- Plugin#config will never return nil
- It is now possible to set the user name of the bot. Before, it was
identical to the nick.
- Implement User#respond_to? to match User#method_missing
* Cinch 1.1.1, 18 January 2011
- Fixed a regression introduced by 1.1.0, which caused Plugin.ctcp
and thus implementing custom CTCP handlers to break
* Cinch 1.1.0, 15 January 2011
- New signals
- :op(<Message>message, <User>target) – emitted when someone gets opped
- :deop(<Message>message, <User>target) – emitted when someone gets deopped
- :voice(<Message>message, <User>target) – emitted when someone gets voiced
- :devoice(<Message>message, <User>target) – emitted when someone gets devoiced
- :halfop(<Message>message, <User>target) – emitted when someone gets half-opped
- :dehalfop(<Message>message, <User>target) – emitted when someone gets de-half-opped
- :ban(<Message>message, <Ban>ban) – emitted when someone gets banned
- :unban(<Message>message, <Ban>ban) – emitted when someone gets unbanned
- :mode_change(<Message>message, <Array>modes) – emitted on any mode change on a user or channel
- :catchall(<Message>message) – a generic signal that matches any kind of event
- New methods
- User#last_nick – stores the last nick of a user. This can for
example be used in `on :nick` to compare a user's old nick against
the new one.
- User#notice, Channel#notice and Bot#notice – for sending notices
- Message#to_s – Provides a nicer representation of Message objects
- Channel#has_user? – Provides an easier way of checking if a given
user is in a channel
- Channel#half_opped? – Check if a user is half-opped
- Plugins/extensions can send their own events using Bot#dispatch
- Modes as reported by Channel#users now use mode characters, not prefixes (e.g. "@" becomes "o")
- Modes reported by Channel#users now are an array of modes, not a string anymore
- The formatted logger (which is the default one) has been improved
and now contains timestamps and won't use color codes when not
writing to a tty. Additionally it can log objects which are not
strings.
- A minor bug in the handling of the original IRC casemap has been fixed
- User#authed? now is synced and won't return a wrong value on the
first use
- The string "!help" in the middle of a message won't cause Cinch to
print help messages anymore
- Quitting will not cause a deadlock anymore
- Using a regexp prefix with a string pattern no longer breaks Cinch
- User and channel caching have been completly rewritten, allowing to
run multiple bots at once. This deprecates and replaces the
following methods (syntax: deprecated → substitution):
- User.find_ensured → UserManager#find_ensured
- User.find → UserManager#find
- User.all → UserManager#each
- Channel.find_ensured → ChannelManager#find_ensured
- Channel.find → ChannelManager#find
- Channel.all → ChannelManager#each
Additionally this changes fix a bug where wrong User/Channel objects
could've been returned.
- Additionally to prefixes, plugins can now have suffixes
New option: plugins.suffix
- Various improvements to the handling of SSL have been made
- The option 'ssl' now is a set of options, as opposed to a simple boolean switch
- 'ssl.use' (Boolean) sets if SSL should be used
- 'ssl.verify' (Boolean) sets if the SSL certificate should be verified
- 'ssl.ca_path' (String) sets the path to a directory with
certificates. This has to be set properly for 'ssl.verify' to work.
- 'ssl.client_cert' (String) allows to set a client certificate,
which some networks can use for authentication (see
http://www.oftc.net/oftc/NickServ/CertFP)
- Instances of Mask can be checked for equality
- Mask#match has been fixed
- Timer functionality has been added to plugins
- A new option 'nicks' has been added which overrules 'nick' and
allows Cinch to try multiple nicks before appending underscores
- Proper disconnect and reconnect handling has been added to Cinch
- Cinch will notice unexpected disconnects
- New options:
- timeouts.read – If no data has been received for X seconds,
consider the connection dead
- timeouts.connect – Give up connecting after X seconds
- ping_interval – Ping the server every X seconds. This interval
should be smaller than 'timeouts.read' to prevent Cinch from
falsely declaring a connection dead
- reconnect – If true, try to reconnect after a connection loss
- pre- and post-execution hooks have been added to the plugin
architecture
- A new option 'user_host' has been added, which allows Cinch to
bind to a specific IP/Host, which is commonly used for using so
called "vhosts"
- Added support for RPL_WHOISREGNICK (+r flag on UnrealIRC)
- Prefixes, suffixes and patterns can now, additionally to strings
and regexps, also be procs/lambdas, which get executed everytime
before a message is matched against the pattern. This allows for
highly dynamic patterns. One possible use case are plugins that
only respond if the bot was directly addressed.
- A new encoding called :irc has been added and made the default.
- If incoming text is valid UTF-8, it will be interpreted as such.
If it fails validation, a CP1252 -> UTF-8 conversion is
performed.
- If your outgoing message contains only characters that fit
inside the CP1252 code page, the entire message will be sent
that way. If the text doesn't fit inside the CP1252 code page,
it will be sent using its original encoding, which should be UTF-8.
- This hybrid encoding allows Cinch to transparently handle nearly
all configurations in western countries, even if users in a
single channel cannot decide on one encoding. The :irc encoding
exploits the fact that most people either use UTF-8 or CP1252
(which is nearly identical to ISO-8859-1) and that text encoded
in CP1252 is not valid in UTF-8.
- Invalid bytes in incoming messages (e.g. if a wrong encoding has
been used) will be replaced with question marks (or U+FFFD if
using UTF-8)
* Cinch 1.0.2, 01 September 2010
- Left-over debug output has been removed
- Patterns won't be wrongly modified during registration anymore
- Using the same internal and external encoding doesn't break Cinch anymore
- Messages coming from SSL will be properly encoded
* Cinch 1.0.1, 19 August 2010
- fix several bugs regarding user syncing and unsyncing which cause
exceptions in the core of Cinch and which don't unsync users who
quit.
* Cinch 1.0.0, 18 August 2010
- first stable release of Cinch