Age | Commit message (Collapse) | Author |
|
In some circumstances the user might want to turn the bot into a pure
logbot for some channels. This can now be achieved by adding that
channel to the irc.ignore_channels config key, that makes the bot ignore
all PRIVMSG to that channel (note that notices and service messages such
as joins and parts are still acted on, just like for irc.ignore_users).
|
|
|
|
There is no need to warn when calling watchRss on a watched feed; in
fact, since watchRss() is called every time a watcher is added, it just
spam the channels with a useless message that also provides unnecessary
information. So just return.
|
|
When lots of rss feeds are defined, the bot will flood the channel on
rss list. Fix by showing a compact list when the number of feeds is
higher than the maximum output lines.
|
|
The reconnect() call in the main loop must be protected in the
begin/rescue blocks. Most of the rescue blocks can be fall-through,
because the begin/end is wrapped in a loop. The only exception is the
ServerError block that issues a retry lest too_fast is reset to false
even when it should be true.
|
|
Demauro's search results can contain some HTML, so clean it up before
output.
|
|
|
|
|
|
false
|
|
|
|
Some editors put a BOM at the beginning of UTF-8 files, and it's not
stripped by Ruby's String#strip, so we have to get rid of it ourselves.
|
|
The new Wordlist.exist? method can be used to check if a wordlist file exists.
It will refuse to check upstream of the wordlist base directory
|
|
Introduce an elementary Wordlist.list() command that accepts an optional
:pattern option to restrict the list to wordlists matching the given
pattern.
Also introduce a wordlist UI to list wordlists from IRC.
|
|
|
|
|
|
|
|
The 'urls info' command to manually query for link information should
always work, regardless of the setting of the url.only_on_channels
config setting.
Fix by making the channels list for handle_urls() into an option
(defaulting to url.only_on_channels) and passing an empty list from
info().
|
|
Turn handle_urls() options (other than the message) into a parameter
hash.
|
|
|
|
Change the parseRss routine to return the number of found items, or nil
in case of error. This helps clearly differentiate between empty feeds
(which are still legit) and b0rked feeds.
This change in logic does not alter the fact that a feed update with no
items will not wipe existing old feed items.
|
|
|
|
Use low-level ('plumbing') git commands to retrieve the current
commit/revision/work tree status when we're being launched from a git
tree. This is faster (less shell escapes) and should work equally well
with all git versions (past, present and future).
|
|
There are no git-svn-ids in our repository, so don't look for them.
Instead, put the last commit subject next to the revision to ease
identification of the commit.
|
|
|
|
|
|
|
|
Also fix a comment typo on the flyby
|
|
|
|
|
|
+ (reply) symbol to bypass the config option
* (plugins) fixed url according to the patch
The symbols are:
:to => :public force the message to be replied in channel (if any)
:to => :private force the message to be replied in private
:to => :auto takes core.private_replies (default)
|
|
|
|
Message#reply() now accepts a :reply option
:nick => false don't prefix nick
:nick => true prefix nick
:nick => :auto take core.reply_with_nick (default)
|
|
|
|
|
|
|
|
The refactored reconnect() method would only wait when the socket was
connected at the time it got called. In case where the socket would have
closed earlier (e.g. because of a network I/O error) it would reconnect
directly, which would for example fail to prevent fast reconnections.
Fix by fencing the wait code with a check for @last_rec (checked before the
optional disconnect) rather than keeping it with the socket connect check,
and always initializing @last_rec on socket connect.
A side effect of this strategy is that reconnect() will only wait if the bot
was previously connect, or if it got disconnected by anything but the
disconnect() method. Callers of disconnect() should take care of waiting
themselves if they plan to reconnect.
|
|
|
|
|
|
|
|
|
|
|
|
An empty String is not false in Ruby, so check for it properly. Also,
find_fortune needs a message passed to it, to be used when it discovers
the correct path.
|
|
|
|
When core.reply_with_nick is active, m.reply expects the argument to be a
String. Do the conversion explicitly.
|
|
Sometimes the bot may receive incomplete or malformed mode lines. This
can be seen for example by kicking repeatedly and at very short
intervals the bot from a channel with +l set to some numbers (at least
on freenode).
We (don't) handle these malformed modelines by skipping them rather than
crashing.
|
|
Botusers in the rejoin.no_kick_list config value can kick the bot without
risking being kicked when it rejoins
|
|
|
|
|
|
|
|
|