Age | Commit message (Collapse) | Author |
|
|
|
|
|
When a redirect has a Set-Cookie: header, check if the cookie domain is
valid for the host we are redirected to. If not, don't set the cookie
in the new request.
|
|
|
|
|
|
This allows us to support servers that (ab)use the CASEMAPPING
to indicate the set of allowed characters for nicks (e.g. Inspire
IRCd).
|
|
Somebody should hang the ActiveSupport developers by their balls
with barbed wire. Their MissingSourceFile extension to LoadError
_expects_ a second argument, breaking the usual Exception interface
(instead, the smart thing to do would have been to make the second
parameter optional and run the code in the from_message method if
it was missing).
|
|
|
|
|
|
|
|
|
|
|
|
This gets the list of channels we think we are in (not what the server says we are in).
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
|
|
My fault for not finding it in review
|
|
|
|
|
|
The new Freenode ircd returns multiple RPL_WHOISCHANNELS lines (split
based on length), and they must be merged, otherwise only the last ends
up as the list of channels that the bot is in.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
|
|
This is used to tell apart colloquial messages to the bot ("botname,
do this") from classic bot-style interface ("!do this").
|
|
|
|
|
|
|
|
Change a return to a next. Leftover from the refactoring of the logger
into its own thread. Thanks to gelraen for spotting this.
|
|
|
|
We cannot signal back to the user from the UI anyway.
|
|
Returns the unprefixed part of a channel name
|
|
This ensures that checks are correct in both Ruby 1.8 and 1.9
|
|
It should be BooleanValue, otherwise false would get converted to 0
which would evaluate to true, meaning cache would never expire.
|
|
Untrapped connect() failures would raise up to the mainloop, causing a
burst of reconnect attempts without delay. Fix by rescuing in
reconnect() and retrying after waiting.
|
|
|
|
This makes it easier to understand why the bot is not joining
when join_after_identify is set to true and the bot is not
identifying.
|
|
Since in ruby 1.9 Exception#to_str was removed, change it to to #to_s
|
|
method_defined? doesn't search in private methods, and :bound_targets is
private, so change it to respond_to?(method, include_private=true)
|
|
This reverts commit 4ea25eba02d85b81dcee4302375d7d3e08cd52ac.
Not only the patch was missing an essential part, but Nokogiri is not
compatible enough with Hpricot anyway. Incompatibilities include
doc/"style|script" raising an "Undefined namespace prefix" error and the
non-existence of Hpricot::Elements.
If we want to support Nokogiri we'll need to write code for it on
purpose or redesign the Hpricot code so that it only uses the subset
supported by Nokogiri.
|
|
|
|
|
|
The time parsing refactoring introduced an unpleasant namespace
conflict by defining Utils::Time. Eliminate it by renaming it to
ParseTime
|
|
When LANGUAGE env var is set to empty value, it breaks
gettext in ruby, so we unset it if it's empty.
|
|
Since in 1.9 methods arrays have symbols instead of strings, fix it by
changing into respond_to? and method_defined?
|
|
this monkeypatch doesn't work on 1.9 - Singleton has no _load method
|
|
ruby 1.9's ConditionVariable#wait is not implemented for timeout != nil,
this patch adds an implementation for it (see ruby-core:15847)
Also, since MonitorMixin is included into TCPSocket in rbot, and
TCPSocket#send != Object#send in ruby 1.9, i changed that to use
__send__.
|
|
in 1.9, Integer(nil) raises TypeError, so we change "%d" to "%s"
|
|
changed "string + exception" to "string #{e}", the
former yields 'can't convert <e> into String' in ruby 1.9
|
|
|
|
Array#nitems is gone in ruby 1.9, changed rbot code to use
Array.compact.size, which works in both 1.8 & 1.9
|
|
Add time parsing routines to Utils, to be used for human-to-computer
conversion of time offsets. Refactored and enhanced from the remind
plugin.
|
|
hangman: an unneeded letters accessor was defined
ircbot: restore initializations removed by previous commit
|
|
|
|
|
|
The plugin fallback method is now passed the list of failures.
Failures themselves are encapsulated in their own data type, making it
easier to handle failures that should inform the user with something
more detailed than the classic 'usage' pattern.
It's still up to the fallback method to make use (e.g. echo) the
relevant messages.
|
|
Put #conjoin() in the Enumerable module, so that it can be shared by all
enumerables (e.g. ranges). Since #size() is not necessarily present, its
use is replaced by #count(), the result of which is cached because
it can be slow on objects missing #size().
|