pbot/PBot/Changes

126 lines
7.6 KiB
Plaintext

# pbot3 changelog and todo list
#
# TODO: A bit more refactoring and clean-ups and conversion to OOP
#
# TODO: add support for admin management - needs support for adding/removing/saving! [for 1.0]
# TODO: multi-channel support needs improvement (note 12/08/09, fixed multi-channel for anti-flood and for ignore)
# e.g., factoids need channel parameter, e.g. C factoids vs. C++ factoids (with an option to allow a factoid across all channels)
# [for 1.0]
#
# TODO: Ignorelist needs to save and load from file, use regex hash keys/search parameters.
#
# 0.6.3-beta (03/26/10): Improved !find command by adding optional -owner and -by search parameters.
# 0.6.2-beta (03/25/10): 'list messages' command significantly improved -- can use regexs search parameters.
# Added optional regex search to 'rq' quotegrab command to match against quotegrab text.
# 0.6.1-beta (03/23/10): Quotegrab ids properly adjusted when deleting quotegrab.
# Admins loads from file, uses regex hash keys.
# Lots of misc tweaks and improvements throughout.
# 0.6.0-beta (03/22/10): Converted everything into objects with zero exports.
# Replaced <STDIN> with sysread(STDIN, ...) in StdinReader.pm as to not mix buffered IO with select()
# 0.5.0-beta (03/16/10): split single large pbot2.pl file into packages and modules
# replaced nick@host with full nick!user@host hostmask throughout [TODO for admin stuff (logged_in, etc)]
# ignore list saves/loads [TODO]
# factoids/modules now case-insensitive in interpret_command
# when using !tell foo about bar, replaced "(nick)" on end of text with "nick wants you to know:" at beginning of text
# added STDIN reader and pass all input to interpret_command (was fun working out the POSIX suspend/bg/fg kinks!)
# lots of code clean-up and refactoring
# 0.4.6 (03/06/10): channel name now always lower-cased in hashes
# added trigger for NOTICE events
# 0.4.5 (12/11/09): set quotegrab id when loading and grabbing; export quotegrabs to webpage
# 0.4.4 (12/10/09): added [channel] optional parameter to !grab
# fixed !rq's [channel] parameter
# 0.4.3 (12/10/09): added !delq to delete quotegrabs
# 0.4.2 (12/09/09): added support for quotegrabs: !grab, !getq, and !rq
# 0.4.1 (12/08/09): improved anti-flood system to be significantly more accurate and per-channel
# added per-nick-per-channel message history using %flood_watch
# add per-channel support to ignore system
# automatically remove message history for nicks that haven't spoken in one day (run once per hour)
# do not ignore !login command
# 0.3.16(11/23/09): refactored module execution to execute_module() subroutine
# added trigger to execute get_title.pl module when URL is
# detected in regular untriggered chat
# 0.3.15(11/20/09): replace 'me' with '$nick' in arguments
# 0.3.14(07/03/07): do not expand escaped dollar-signs in factoids (adlib)
# 0.3.13(07/01/07): fork all modules
# added unload_module, enable_command, disable_command
# automatically export factoids every $export_factoids_timeout seconds
# 0.3.12(05/20/07): lol? Prevent recursive aliasing infinite loop, x -> a, a -> x
# 0.3.11(05/20/07): added 'alias'
# 0.3.10(05/08/05): dont ban by nick, wait for nickserv response before joining chans
# 0.3.9 (05/06/05): stop logging joins, fixed join flood ban?
# 0.3.8 (04/28/05): changed 'top10' to 'top20' throughout
# 0.3.7 (04/28/05): 'top10 recent' command lists 10 most recent factoid additions
# 0.3.6 (04/15/05): join/part flood earns ban (broken, I'm lazy)
# 0.3.5 (03/24/05): fix bug in interpret_command re $commands and $keyword
# keeps track of op state in multi-channels (but not commands)
# added nick searching to top10
# 0.3.4 (03/22/05): added kick
# list also lists admins
# ban also kicks nick
# unban also modes -b in addition to ChanServ AUTOREM DEL
# oops, moved $is_opped = 0 from lose_ops() to on_mode()
# 0.3.3 (03/21/05): added ban, unban using ChanServ AUTOREM
# 0.3.2 (03/20/05): stays opped for a minimum of 5 minutes before deop
# 0.3.1 (03/18/05): log out departed admins
# implemented ignore and unignore
# flooding with commands triggers timed ignore
# no flood consequences for logged in admins
# 0.3.0 (03/17/05): Hi-res timer support.
# renamed %admin_commands to %internal_commands
# added admin levels to %admin_commands
# added access levels to internal commands
# interpret_command uses access levels and checks login status
# removed all extraneous loggedin() checks
# internal commands processed before bot commands
# added flood control
# flooding channel tiggers timed quiet
# 0.2.18(03/16/05): direct at $nick within channel
# 0.2.17(03/11/05): Most confirmation and warning messages sent via /msg
# restricted parsing to bot's name or ! only
# 0.2.16(03/02/05): added '/msg'
# /msg doesn't show ($nick) if admin
# 0.2.15(02/20/05): special variable lists, "adlibs"
# 0.2.14(02/19/05): added $botnick and $altbotnick
# added more rules to trigger interpret_command
# added '/me'
# added '$args', allowed factoids to take arguments
# 0.2.13(02/19/05): added '/say' for no '<foo> is'
# added $nick expansion in factoids
# added 'show' command to display factoid literal
# 0.2.12(02/16/05): improved html for export
# added 'commands' to list command
# 0.2.11(02/12/05): added popularity to 'info' command
# 'top10' command for factoids
# 0.2.10(02/07/05): added histogram command
# 0.2.9 (02/03/05): info <factoid> || info <module>
# find <factoid keyword>
# use eval {} in change_text
# count <nick> returns # of factoids <nick> has submitted
# 0.2.8 (02/02/05): change_text: show result of change
# ... debugging prints throughout
# Allowed factoids to be appended using 'is also'
# 0.2.7 (01/27/05): Removed '<command> for <nick>' syntax to direct
# a command at a user. Using 'tell <nick> about <command>'
# instead.
# 0.2.6 (01/22/05): Major source overhaul.
# Allowed any non-word character to be used
# as delimiter in change_text.
# 0.2.5 (01/18/05): Don't die in save_commands.
# 0.2.4 (01/18/05): Added 'change' command.
# 0.2.3 (01/17/05): Allowed factoids to be added using '%foo is bar'
# 0.2.2 (01/17/05): Responds only when addressed or explicitly triggered.
# 0.2.1 (01/17/05): Allowed trailing question marks.
# Allowed 'is' for add_text.
# Some minor bug fixes.
# Aliased forget => remove.
# 0.2.0 (01/16/05): Revamped hash structures for factoids.
# All commands have a timestamp and owner.
# Added 'export' command and modifed 'list'.
# 0.1.4 (01/16/05): Minor tweaks and fixes for logging.
# 0.1.3 (01/16/05): Can direct commands at nicks.
# example: man fork for <nick>
# 0.1.2 (01/15/05): Added 'list' admin command.
# 0.1.1 (01/15/05): Some minor tweaks and fixes.
# 0.1.0 (01/15/05): Initial version