Limnoria/ChangeLog

395 lines
14 KiB
Plaintext

* Added Lookup.search
* Updated Todo.remove to allow removing multiple taskids
* Added Topic.reorder, a new command for reordering the topics in a
specific manner.
* Added Topic.list, a new command for listing the topics in a
channel (mostly in order to help out with Topic.reorder :))
* Added Http.extension, a new command to retrieve file extension in
formation from filext.com.
* Updated Relay.whois to include a user's away status and identified
state, if the server supports it.
2003-12-6 Jeremy Fincher <jemfinch@supybot.org>
* Added a "trusted" capability that defaults to off (-trusted) and
is required for Utilities.re (with which it's possible to DoS the
bot) and for the new Math.icalc (with which it is trivially
possible to DoS the bot).
* Added Math.icalc, a new command for doing integer arithmetic.
It requires the "trusted" capability.
* Added the Fun.ping command, because MozBot has it.
* Added Note.unsend command, to allow users to "unsend" notes
they've sent but whose recipient has not yet read.
* Added Channel.{deop,devoice,dehalfop,kick}.
* Added Http.size and Http.doctype and Http.headers to retrieve
various meta-information on URLs.
* Added a ranking to ChannelDB.wordstats.
* Added Karma.most for determining various "mosts" in the Karma
database.
* Added User.list command to list registered users.
* Added 'roulette' command to Fun plugin.
* Added a Channel.lobotomies command to list the channels in which
the bot is lobotomized.
* Added a swap function to Math.rpn.
* Changed the name of User.changeusername to User.changename.
* Changed the logging infrastructure significantly; each plugin
now has its own logger (and thus logfile), in addition to being
logged in the main logfile.
* Fixed bug in which the bot wouldn't rejoin channels after a
reconnect. Thank the Lord for tcpkill :)
* Fixed Http.freshmeat for projects with a space in their names.
* Changed RSS so RSS feed commands may be added while the bot is
running, and so added RSS feed commands are in the RSS plugin.
* Changed Lookup so added lookups are added in the Lookup plugin
itself so there's no dependency on Alias, and so loaded lookups
can be seen via 'list Lookup'.
* Fixed bug #850931 as well as several other minor bugs in
Utilities.re.
* Fixed bug #851254, Factoids.whatis didn't work on numeric keys.
* Added the ability to turn on/off the showing of ids in FunDB
excuse/insult/praise/lart.
* Added the to= keyword argument to the various reply functions to
you can specify a target to send the message to.
* Changed socketDrivers to allow more time (10x more, to be exact)
for connecting to the network than for the normal read.
* Fixed a bug in Http.weather that would cause an ugly error
message for a command like "weather hell".
* Added the number of strings to the Fun.object output.
* Fixed bug in RSS.configure; no aliases could be added.
* Changed Alias.freeze to Alias.lock.
* Fixed sorting in Status' uptime database.
* Updated the Gameknot tests for expired games, and updated the
Gameknot plugin to handle such links in its snarfer.
* Added a 'server' attribute to Irc objects to unify the way to
access such information.
* Added revision command for finding out the revision of the files
in a running bot; also added __revision__ strings so CVS would be
happy to keep such information for us :)
* Fixed bug #848475 -- bad error message from regexp-expecting
commands.
* Stopped listing the plugin dispatcher command in the list of
commands for that plugin.
* Fixed bug in Gameknot.gkstats when retrieving the stats for
users who haven't yet played a game.
* Added a numUsers() method to ircdb.UsersDB (ircdb.users).
2003-11-18 Jeremy Fincher <jemfinch@users.sf.net>
* Changed commands so that plugins no longer have to make sure
that their commands are unique within the bot. Ambiguous commands
will reply with an error message and instruct the user to
disambiguate the command by prefixing with the appropriate plugin
name.. Many commands that formerly contained the plugin name (or a
portion thereof) have had it removed, and many plugins have had
their names changed so prefixing a command with the plugin name is
less bulky. Rather than list each individual example, you can
read the plugin documentation posted at ***TODO***
* Renamed numerous plugins: OwnerCommands became Owner,
AdminCommands became Admin, ChannelCommands became Channel,
MiscCommands became Misc, UserCommands became User, URLSnarfer
became URL, Notes became Note, FunCommands became Fun, IMDB became
Movies, and Aliases became Alias.
* Made aliases persistent across reloads/bot restarts. You should
probably change your botscripts not to add the aliases onStart, but
(assuming those aliases don't change) it should still work fine.
* Added the ability for users to specify that their passwords
should be hashed on disk.
* Added MoobotFactoids plugin for moobot-style factoids (which are
meant to mimic blootbot-style factoids). People used to
traditional IRC bot factoids plugins will probably find this
plugin more to their taste than Factoids.
* Added Ebay plugin for snarfing eBay URLs as well as getting info on
certain auctions.
* Added monitoring of occurrences of certain words on a per-user
basis, adding two new commands to ChannelDB (addword and
wordstats).
* Added Bugzilla module for accessing various data in Bugzilla
pages.
* Added QuoteGrabs module which allows people to grab interesting
quotes from other people and store them in the bot for later retrieval
(also optionally have the bot randomly snarf quotes).
* Added a "change" command to change factoid values in the Factoids
plugin.
* Added Dunno plugin as an optional replacement for the boring 'no
such command' response.
* Changed FundB to allow accessing excuses, larts, and praises by
id.
* Added substitutions for 'me' and 'my' in insult/praise/lart.
* Added 'change' and 'old' commands for News.
* Added ASPN Python Cookbook URL snarfer.
* Moved karma out of ChannelDB and into its own Karma plugin.
* Moved uptime-related commands to from FunDB to the Status plugin.
* Renamed the Network.internic command to whois, since we can now fix
ambiguity by prefixing the plugin name.
* Removed the "googlesite" function.
* Removed "dictserver" command in favor of using the Configurable
framework with the Dict plugin instead.
* Removed TwistedCommands plugin to the sandbox; the one command
it provided (dict) is now better provided in the Dict plugin.
* Removed the Moobot plugin (the commands were moved to the Fun
plugin or dropped entirely).
* Removed all example strings from plugins. To be replaced with an
automated process later.
* Converted several plugins to the new Configurable plugin type
Plugins modified include Bugzilla, ChannelDB, Dict, Ebay,
Enforcer, Gameknot, Google, Python, Relay, and URL (formerly
URLSnarfer).
* Changed ChannelDB database to use integer user ids instead of text
usernames.
* Changed Http.geekquote to use multiline geekquotes (and removed
the option to do so, since it's now the default).
* Added a --id switch to geekquote to pick a specific geekquote.
* Changed most commands in News to require the 'news' capability.
* Changed Relay.names output to show (and sort by) status in the
channel.
* Removed 'relaycolor' command in favor of Configurable framework.
* Added total memory usage to 'cpustats' output for several *nix
platforms.
* Removed the total percentage of CPU time from 'cpustats'. Not
only was it inaccurate, but we needed the room for memory stats.
* Changed Topic.shuffle to ensure that the topic is actually
shuffled.
* Changed all commands which take an index (various Topic and
Factoids commands) to index from 1 instead of 0.
* Fixed several bugs in Unix.spell whereby the bot could be
frozen.
* Changed the name of the "bug" command in the AdminCommands
plugin to "reportbug" instead.
* Added QUIT stat-keeping to ChannelDB.
* Removed the OwnerCommands.say command; it wasn't useful enough,
and is so easily written that anyone can have it back if they want
it.
* Changed OwnerCommands.load (and reload) to be case-insensitive,
so "load funcommands" works just as well as "load FunCommands".
* Changed the keyword parameter "needed" to privmsgs.getArgs to be
"required" instead. It just sounds better, works with "optional"
better, and we won't get an oppurtunity later to change it.
* Updated IrcObjectProxy.reply to allow a "notice" boolean keyword
to determine whether or not to reply via a notice.
* Added privmsgs.urlSnarfer, a wrapper around snarfer methods that
handles both the threading and the limiting of replies so loops
between two snarfing bots can't happen.
* Added structures.PersistentDictionary for dictionaries that
should be saved to a file in repr()ed form.
* Added structures.TwoWayDictionary for dictionaries that should
map keys to values and vice versa.
* Added a curry function to fix.py for doing currying (if you
don't know what it is, don't worry about it :))
* Added utils.depluralize to do the opposite of utils.pluralize.
* Added utils.safeEval for safe evaluation of Python data
structures (lists, dictionaries, tuples, numbers, strings, etc.,
but no operations on them).
* Added utils.saltHash for handling the hashing of passwords with
a salt.
* Added plugins.standardSubstitute to do standard substitutions
for things like $who, $nick, $channel, etc.
* Added plugins.Configurable, a plugin mixin that allows easy
specification and persistence of configurable data on a global and
per-channel basis.
* Fixed plugins.ChannelDBHandler (and added plugins.DBHandler) to
be threadsafe, so threaded plugins could still use a database, and
non-threaded database-using plugins could still receive the
results of a threaded command.
* Removed ircutils.privmsgPayload and ircutils.shrinkList, both of
which existed prior to the addition of more, and aren't needed
anymore.
2003-10-12 Jeremy Fincher <jemfinch@users.sf.net>
* Version 0.73.1!
* Fixed a bug in Math.{calc,rpn} where certain functions
("degrees" in particular) that didn't like complex arguments would
fail on numbers on which they shouldn't.
* Added an optional "key" argument to ChannelCommands.cycle.
* Fixed bolding in supybot-wizard.py.
* Fixed handling of the secure flag by ircdb.IrcUser.setAuth;
previously it didn't prevent someone with an unmatched hostmask
from identifying.
* Fixed imports in the DCC plugin.
* Fixed a bug where the bot would not reply to nick-addressed
messages on a channel if his nick wasn't entirely lowercased.
* Fixed the Relay plugin to relay topic changes; an oversight not
caught earlier because supybot has for a long time managed our
topics.
* Fixed a bug in the Services plugin where the bot would ghost
himself if his nick didn't match in case the nick given.
* Added the ability for PrivmsgCommandAndRegexp to have regexps
that are called *after* callbacks.addressed has been called on the
message -- see ChannelDB.{increase,decrease}Karma for an example.
* Fixed bug in supybot-wizard.py where plugins without configure
functions would raise an uncaught exception.
* Fixed debincoming to work since the removal of baseplugin; it
was missing an import.
* Fixed MiscCommands.doPrivmsg to send an IrcObjectProxyRegexp to
the replyWhenNotCommand function.
* Fixed debversion to display the correct output when no matching
packages were found.
* Fixed ChannelDB to import conf; karma didn't work otherwise.
* Fixed a bug in the Enforcer plugin that would cause the bot to
ban everyone from the channel whenever ChanServ deopped someone.
* Changed the "whois" command in the Network plugin to "internic"
instead.
2003-10-05 Jeremy Fincher <jemfinch@users.sf.net>
* Version 0.73.0!
* Added the News plugin, news handling for channels.
* Changed the initial character of anti capabilities to '-'
instead of '!'. '!' can be the initial character in a channel
name, and so any command using getChannel and accepting a
capability as its first argument (several in ChannelCommands) will
have difficulties (the channel then *must* be specified since
getChannel will consider !capability to be a channel name). Note
that this means you'll need to either remove and re-create or edit
your config files to change ! to - in capabilities.
* Removed the "cvsup" command; it's been useless since we had a
global install, and can only serve to confuse.
* Added a "private" command to MiscCommands to allow users to
specify that a response should be made in private.
* Added a "secure" flag to user database records that *requires*
that one of the user's hostmasks match if the user is to be
recognized. This flag may be set with the "setsecure" command.
* Added a convert command to the Math plugin. More conversions
are necessary, if anyone's interested in doing it. The available
units are available via the "units" command.
* Fixed the pydoc command to allow access to standard Python
modules that are shared libraries rather than pure Python code.
* Added a "Python" plugin and moved FunCommands.{pydoc,zen} to
it.
* Fixed the supybot- scripts to use optparse so they now
accept many command line options (but most importantly, the --help
option :))
* Added a debincoming command to the Debian plugin; it searches
the available packages at http://incoming.debian.org/
* Moved the "bug" command from MiscCommands to AdminCommands in
order to prevent possible abuse.
* Changed ChannelDB.seen to default to using nicks; a --user
option can be passed to use the old behavior. Note that this
means you'll have to update your ChannelDB database; use this
SQL statement to do so:
CREATE TABLE nick_seen (
name TEXT UNIQUE ON CONFLICT REPLACE,
last_seen TIMESTAMP,
last_msg TEXT
);