Auto IRC Bot 3.0: Change Log ------------------------------------------------------------------------------- 3.0 Indev =============================================================================== * Added who() to API::IRC. * Added hook on_whoreply. * PRIVMSGs and NOTICEs that would cause a >512 bytes resulting message are now divided into multiple messages. * Renamed botnick to botinfo. * Renamed Parser::IRC to Proto::IRC. * Added an Eval module. * Added an UNO module. * Added on_part hook. 3.0 Alpha 5 =============================================================================== * Bug fix: Fixed broken rehash. * Ignore PRIVMSG's if they're from an invalid source. * Fixed an odd bug when viewing non-existent quotes. * You can now define how many results are returned by QDB SEARCH/MORE at a time with qdb_search_resnum in the config. * Added SEARCH and MORE to QDB. * Killed EMODS in the starter script and updated MODS * Added core command MODLIST. * Added command level 3 for logchan-only command. * Added a LinkTitle module for getting the title of a web page posted in a channel. 3.0 Alpha 4 =============================================================================== * Added a Dictionary module for looking up definitions of words. * server:ajoin now supports channel keys by spacing the name and key. * Hooks can now block events by returning -1. * bin/buildmod now retrieves the POD from modules and creates man(1) page plus HTML file. * cjoin() now supports a channel key as the last argument. * Added a ChanTopics module for advanced management of channel topics. * bantype is now a required configuration value. * Added ban() to API::IRC. * Changed on_cprivmsg arguments to: \%src, $channel, @msg * Changed on_uprivmsg arguments to: \%src, @msg * Bug fix: Commands getting Permission denied even with incorrect prefix. * Changed command callback arguments to: \%src, @args * Bundle server with \%src in the on_rcjoin event. * logchan is now joined automatically. * Changed on_notice arguments to: \%src, $target, @msg * Clean up shutdown. * Created event on_shutdown. * Shutdown if there are no more IRC connections. * Added the ability to use printf(3) % variables in trans(). * Added slog() to API::Log for logging to IRC. * Added a Greet module for greeting users on join. * Added PostgreSQL support. Official modules do not support this yet. * database:format now a required configuration value. * Added support for MySQL. ./install --with-mysql * Added a database upgrade script for upgrading the `qdb` table in 3.0.0a3 to the new format used by 3.0.0a4. 3.0 Alpha 3 =============================================================================== * Added command rate limiting. * Added module installer to ./install. * Added a module buildsys. * Added a QDB module. * SIGHUP now triggers a rehash. * Added core command REHASH. * Moved signal handlers to Lib::Auto. * Renamed src/ to lib/. * Switched from Auto-Flatfile to SQLite for database backend. * Added a Badwords module. * Added kick() to API::IRC. * Added DBI and DBD::SQLite to core dependencies. * Added on_connect hook, triggered after we receive 001. * Updated hooks to use hashrefs. * Moved CTCP VERSION reply to Core::IRC. * Renamed Core::IRC to Core::Cmd. * Parse MODE. * Added CertFP support. * Rewrote socket read/write methods. * Added SSL support. * Added act() to API::IRC. * Added IPv6 support. 3.0 Alpha 2 =============================================================================== * Added update check for non-indev releases. * Added Git revision to version string for dev releases. * Added an FML module for retrieving random FML quotes. * Privilege to use a command is now handled by the priv arg of cmd_add. * HELP now only displays help if the user has the appropriate privileges. * Updated Core::IRC and all modules to obey the updated API. * Deleted shelp from cmd_add, replaced with privilege. Renamed fhelp to help. * If fantasy HELP is used, only display fantasy commands, if private HELP is used, only display private commands. * Fixed cmd_add syntax. Correct format: name, level, short help, full help, callback. * Added core command HELP. * Added core command RESTART. * Added config option server:autorejoin for rejoining on kick. * Added event on_kick. * Parse KICK. * Added event on_quit. * Parse QUIT. * Added event on_part. * Parse PART. * Update chanusers on JOIN. * Properly parse NICK and update chanusers. * Added --enable-ssl to ./install for the future SSL support. * Added chanstatus-based permissions. This works via user:chanstatus. * Catch __WARN__ and __DIE__, logging to file. * Added Spanish translations. * Added EightBall module. * Rewrote the socket engine. This should fix random timeouts. * Added IsItUp module. * Added user:net for network-specific user blocks. * Bug fix: Fixed broken no-parameter config blocks. * Added core command SHUTDOWN. * Added core command MODRELOAD. * Added core command MODUNLOAD. * Added core command MODLOAD. * Added Weather module. * Added Calc module. * Fixed the NAME,VER,SVER,REV,RSTAGE constants. * Added a CTCP VERSION reply. * Created Core::IRC. * Added Bit.ly module. 3.0 Alpha 1 =============================================================================== * Added mod_exists() to API::Std. * Added SASL support with modules/SASLAuth. * Added mdelete() to DB/Flatfile. * Added topic() to API::IRC. * Added has_priv() to API::Std. * Finished the host-based privilege/permission system. * Added hook on_preconnect, this comes before USER (after PASS). * Added match_mask() to API::IRC and match_user() to API::Std, match_user checks config user:mask to find a user block, if a match is found, the configured username is returned. * Added rchook_add() and rchook_del() to API::Std. * Parse NOTICE and added hook on_notice. * Added hooks on_uprivmsg and on_cprivmsg. * Module names are now case sensitive. * Added config option module for auto-loading a module. * Fixed a bug in API::Log that caused invalid months. * Changed how command data is passed to fix a bug. * Removed dependency Async. * Rewrote the socket engine. * Added cmd_add|del|run() to API::Std for commands. * Parse PRIVMSG. * Enabled ./install features are now stored in $Auto::ENFEAT. * Added --enable-sasl option to ./install for enabling SASL. * Added names() to API::IRC which sends NAMES. * Parse NAME replies (Numeric:353). * Parse Numeric:005 and store PREFIX's data. * Bug fix: The bot's nick is now stored correctly. * Added server:modes config option for setting modes on connect. * Parse TOPIC. (and added hook on_topic) * Added DB::Flatfile for DB:: database functions. * Added umode() to API::IRC. * Added events on_ucjoin, on_rcjoin and on_nick. * Parse numerics 465, 471-475 and 477. * Added an optional @args onto event_run() for sending @args to the subs that have hooked onto the event. * Parse the channels the bot is in. * Parse Numeric:438. * Added timer_add() and timer_del() to API::Std for timers. * Added events: on_sigterm, on_sigint and on_sighup. * Added event_add|del|run() and hook_add|del() to API::Std for managing and running events/hooks. * server:nspass removed. server:idstr added. * Changed the way we parse strings to support multi-word strings in config values. * Added server:nspass to config options. Will be replaced in the future by idstr. * Parse NICK. * Added usrc() to API::IRC for formatting a source. * Added awarn() to API::Std for warnings. * Parse Numeric:432. * Parse Numeric:433. * Added nick() to API::IRC. * Added %got_001 to Parser::IRC for checking if we've been sent 001. * Renamed API::IRC::mode() to cmode() * Added mod_init() and mod_void() to API::Std. * Use Class::Unload. * Handle SIGTERM, SIGINT and SIGHUP. * Added quit() to API::IRC. * Added notice() to API::IRC. * Added privmsg() to API::IRC. * Added mode() to API::IRC. * Added PASS support. * Bug fix: err() fatal errors now work. They didn't work due to bad regex. * Added an installation script. * Fork into the background if not in debug mode. * Begin on API::IRC. * Parse PING and Numeric:001. * Begin on the IRC parser. * Added sockets, support for multiple asynchronous sockets. * Bug fix: conf_get() now returns correct data by checking what type of reference the requested value is. * Foundation completed. * Added API function err() * Added API function dbug() * Added a debug mode. * Old logs can now expire if set to do so in config. * Added API function alog() * Added API::Log::expire_logs() * Added API function println() * Use Mouse. * Added contributor; Chazz "Alexandria" Wolcott. * Gettext is no longer used. * German translations. Contributed by Chazz "Alexandria" Wolcott. * Converted English and French files to new format. * Created a new method of translation. * Use Exporter for the API functions. * Added developer; Timothy Estes. * Added developer; Russell Bradford. * Require Perl 5.10.0 or higher. * Removed developer; Russell Bradford. * Renamed config value language to locale. * Added an example config file. * Added API function conf_get() * Renamed API::Standard to API::Std * Created a configuration file parser. * New developer; Russell Bradford. * Import the POSIX module. * Fixed accent marks in French translation files. * French translations. * Added gettext compile script. * Gettext English language files. * New developer; Matthew Barksdale. * Added documentation for the future Auto-Flatfile database format. * Added a basic launcher. * Finished standard documentation.