X-Git-Url: https://git.hcoop.net/clinton/bobotpp.git/blobdiff_plain/4f4c0ce6826406da17ed129877ba4a187d4f219b..cbd61b54f9e74dafab0ebbd3d79bac93d188f38f:/TODO diff --git a/TODO b/TODO index 1d1f205..524470c 100644 --- a/TODO +++ b/TODO @@ -1,60 +1,68 @@ -Done: +Done (2.2): * DCC CHAT min user level * Lots of hooks related stuff that I never wrote down * Abstract DCC support so that DCC FILE may be easily implemented - -2.2: -* Utils::valid_nickname_p should have a configurable max nick length - (now that most networks allow for longer than nine character - nicks). This is dependant upon the new configuration system -* Finish adding commands to Scheme for sending messages - (e.g. bot:send-CTCP to send a CTCP message) -* Add util functions for doing stuff like quoting CTCP messages -* Finish adding hooks/send hooks -* Write Texinfo manual -* More Generic Configuration Database -* Improve the help system -* DCC FILE support (sending and recieving) -* XDCC file server script (requires DCC FILE support) +* Wrote config database class +* Compile without warnings * bot:protection/[none|no-ban|no-kick|no-deop] constants * bot:aop/[no|yes] constants -* Extend AOP to support +v (0 = no op, 1 = +o, 2 = +v) +* Utils::valid_nickname_p should have a configurable max nick length +* More detailed script error reporting +* Commands::sendCTCP, Commands::sendCTCPReply * Add DCC_CHAT_END hook for Scheme +* Implement ctcp-quote + +Solved By Inactivity: +* Remove gh_* when Guile 1.8 is released + Guile 1.8 was released ages ago; no need to put this off to 3.0 +* Add a networked interface to guile repl + Guile Debugging Server (GDS) does a fine job of this albeit only + intentionally on the localhost. The bot is not particularly + threadsafe and so the usefulness of GDS is limited... + +2.4: +* Finish converting UserCommands to use Commands +* Eliminate String class +* Make internals threadsafe + - Need to lock *List, Hooks, and ServerQueue it seems +* Convert Hooks and ServerQueue to internally use a std::priority_queue<> +* Extend AOP to support +v (0 = no op, 1 = +o, 2 = +v) +* Add !setcommandlevel (move ScriptCommands implementation to Commands + and add a UserCommands) +* Improve the help system + - Generate help dynamically rather than using a static file + - Commands register help entries +* Enhance the scripting layer + - Implement ctcp-dequote + - Finish adding commands to Scheme for sending messages + - Finish adding hooks/send hooks + - Add commands to delete a hook + - Saner module loading + - Higher level interface (e.g. define-command NAME (ARGS) vs define + + bot:addcommand) + - New API in module (bobot++ FOO) instead of (bobotpp ...) to allow + old script to continue working with the old interface +* DCC FILE support (sending and recieving) +* Finish configuration database class +* Finish Texinfo manual 2.4/3.0 (2.4 iff backwards compatibility is maintained, 3.0 otherwise): General: -* Eliminate String class -* Finish converting UserCommands to use Commands * Audit code and see what data in classes should be made private and - have getters/setters added (e.g. logFileName in Bot--if this is - changed the log file doesn't change after the Bot is started). - -Scripting: -* Add commands to delete a hook - - return an iterator to the Hook - - this would require a new SMOB to be created - - Scheme could pass Hook objects around and do nifty things - - At least allow all hooks of a type with the same name field to be - deleted at once (also all hooks with the same name). Also allow - deleting based on the regexp - -Networking: -* Add a networked interface to guile repl - - This can (should) be done as a script, but requires non-coop threads - support to be done easily (and thus requires Guile 1.8) - - Admins only - - Telnet - - Store authorized users and passwords in bot.telnet file - - Bot master can add new telnet users - - MUST HAVE PASSWORD + have getters/setters added (e.g. logFileName in Bot--if this is + changed the log file doesn't change after the Bot is started). +* Possibly convert BotConfig to use boost::any instead of std::string + as t_value +* Remove StrinkTokenizer, replace with boost::tokenizer +* Remove string procedures from Utils, replace with boost::string_algo +* Use boost::timer for internal timers Definitely 3.0: -* Remove gh_* when Guile 1.8 is released -* Make it possible to use Scheme functions in the Parser itself * Replace large select-loop in Bot::waitForInput with multithreaded - To clarify: There will be one thread for DCCs and another thread for the current irc server connection, each with its own select loop. There may also be a thread for the network repls if I implement those. -* New config values in config db should be added before old values - (this is faster but breaks the way server lists work in 2.x) \ No newline at end of file + +Maybe: +* Make it possible to use Scheme functions in the Parser itself \ No newline at end of file