Age | Commit message (Collapse) | Author |
|
Move the whitelist and badwords check in the message() method instead of
triggering on listen(). This is more correct and more efficient, and it
ensures that the whitelist protects mass-highlighters too.
|
|
When a masshl ban is added, the bot will ban (or kick or whatever)
anybody that calls more than a given fixed number of users or a
percentage of in-channel users.
|
|
|
|
Turn the confession extraction into its own method, and use it both for
specific and random confession retrieval.
|
|
The real confessions are in the 'main' div, so rather than
second-guessing their true location (and getting it wrong every time the
site changes layout), just skip to the 'main' div before looking for
content.
|
|
|
|
|
|
hh:mm
|
|
|
|
|
|
|
|
If we always abort, a failing first parser will cause a failure even though a
subsequently tried parser succeeded in getting the feed right. So only
return nil if rss was nil when the error list wasn't empty.
|
|
|
|
Commit 36f1f28e668919dfab75c8fc4d1020abad351bd1 borked error handling as
it assumed that a false or nil rss implied a nonempty errors, and it
failed to return early.
Fix by removing the early check for a missing rss and wrapping the
report_problem (and the previously missing 'return nil') in the check
for a nonempty errors array.
|
|
Some feeds fail when parsed by some parsers, but work correctly with
others (e.g. http://www.blueman.com/community/rss fails with xmlparser
but not with REXML). So try all of them and only abort if none works
rather than failing because the default parser fails.
|
|
|
|
Due to the way mapping work, quote commands whose first parameter is a
channel must be mapped before the ones that implicitly refer to the
current channel.
This has the upside that they really work, and the downside that
commands that refer to the current channel must specify the channel if
their argument begins wit something that looks like a channel spec.
However, this last case is extremely rare, so we're fine.
|
|
|
|
|
|
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.
|
|
Demauro's search results can contain some HTML, so clean it up before
output.
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
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)
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
Botusers in the rejoin.no_kick_list config value can kick the bot without
risking being kicked when it rejoins
|
|
|
|
|
|
|
|
|
|
Fixes issue #20.
|