| 1 | Done: |
| 2 | * DCC CHAT min user level |
| 3 | * Lots of hooks related stuff that I never wrote down |
| 4 | * Abstract DCC support so that DCC FILE may be easily implemented |
| 5 | * Wrote config database class |
| 6 | * Compile without warnings |
| 7 | * bot:protection/[none|no-ban|no-kick|no-deop] constants |
| 8 | * bot:aop/[no|yes] constants |
| 9 | |
| 10 | 2.2: |
| 11 | * Finish Texinfo manual |
| 12 | * Register a lazy catch handler (in Interp::Startup) that prints more |
| 13 | debug info to the log (filename, line number, column number, |
| 14 | etc.). Check the mod_guile source for the lazy catch handler in it. |
| 15 | * Utils::valid_nickname_p should have a configurable max nick length |
| 16 | (now that most networks allow for longer than nine character |
| 17 | nicks). This is dependant upon the new configuration system |
| 18 | * Finish adding commands to Scheme for sending messages |
| 19 | (e.g. bot:send-CTCP to send a CTCP message) |
| 20 | * Add util functions for doing stuff like quoting CTCP messages |
| 21 | * Finish adding hooks/send hooks |
| 22 | * Add DCC_CHAT_END hook for Scheme |
| 23 | |
| 24 | 2.4: |
| 25 | * Use configuration database class |
| 26 | * Extend AOP to support +v (0 = no op, 1 = +o, 2 = +v) |
| 27 | * Add !setcommandlevel (move ScriptCommands implementation to Commands |
| 28 | and add a UserCommands) |
| 29 | * Improve the help system |
| 30 | |
| 31 | 2.4/3.0 (2.4 iff backwards compatibility is maintained, 3.0 otherwise): |
| 32 | General: |
| 33 | * Eliminate String class |
| 34 | * Finish converting UserCommands to use Commands |
| 35 | * Audit code and see what data in classes should be made private and |
| 36 | have getters/setters added (e.g. logFileName in Bot--if this is |
| 37 | changed the log file doesn't change after the Bot is started). |
| 38 | * DCC FILE support (sending and recieving) |
| 39 | * Possibly convert BotConfig to use boost::any instead of std::string |
| 40 | as t_value |
| 41 | * Remove StrinkTokenizer, replace with boost::tokenizer |
| 42 | * Remove string procedures from Utils, replace with boost::string_algo |
| 43 | * Use boost::timer for internal timers |
| 44 | |
| 45 | Scripting: |
| 46 | * Add commands to delete a hook |
| 47 | - return an iterator to the Hook |
| 48 | - this would require a new SMOB to be created |
| 49 | - Scheme could pass Hook objects around and do nifty things |
| 50 | - At least allow all hooks of a type with the same name field to be |
| 51 | deleted at once (also all hooks with the same name). Also allow |
| 52 | deleting based on the regexp |
| 53 | |
| 54 | Networking: |
| 55 | * Add a networked interface to guile repl |
| 56 | - This can (should) be done as a script, but requires non-coop threads |
| 57 | support to be done easily (and thus requires Guile 1.8) |
| 58 | - Admins only |
| 59 | - Telnet |
| 60 | - Store authorized users and passwords in bot.telnet file |
| 61 | - Bot master can add new telnet users |
| 62 | - MUST HAVE PASSWORD |
| 63 | * See if Socket::readLine could be sped up (profile it first to see if |
| 64 | it even matters) |
| 65 | |
| 66 | Definitely 3.0: |
| 67 | * Remove gh_* when Guile 1.8 is released |
| 68 | * Replace large select-loop in Bot::waitForInput with multithreaded |
| 69 | - To clarify: There will be one thread for DCCs and another thread |
| 70 | for the current irc server connection, each with its own select |
| 71 | loop. There may also be a thread for the network repls if I |
| 72 | implement those. |
| 73 | |
| 74 | Maybe: |
| 75 | * New config values in config db should be added before old values |
| 76 | (this is faster but breaks the way server lists work in 2.x) |
| 77 | * Make it possible to use Scheme functions in the Parser itself |