99aaada96d97dd4e77099dae0c55239e68586c6d
[clinton/bobotpp.git] / TODO
1 Done (2.2):
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 * Utils::valid_nickname_p should have a configurable max nick length
10 * More detailed script error reporting
11 * Commands::sendCTCP, Commands::sendCTCPReply
12 * Add DCC_CHAT_END hook for Scheme
13 * Finish adding commands to Scheme for sending messages
14 * Finish adding hooks/send hooks
15
16 2.2:
17 * Finish Texinfo manual
18 * Add util functions for doing stuff like quoting CTCP messages
19
20 2.4:
21 * Use configuration database class
22 * Extend AOP to support +v (0 = no op, 1 = +o, 2 = +v)
23 * Add !setcommandlevel (move ScriptCommands implementation to Commands
24 and add a UserCommands)
25 * Improve the help system
26
27 2.4/3.0 (2.4 iff backwards compatibility is maintained, 3.0 otherwise):
28 General:
29 * Eliminate String class
30 * Finish converting UserCommands to use Commands
31 * Audit code and see what data in classes should be made private and
32 have getters/setters added (e.g. logFileName in Bot--if this is
33 changed the log file doesn't change after the Bot is started).
34 * DCC FILE support (sending and recieving)
35 * Possibly convert BotConfig to use boost::any instead of std::string
36 as t_value
37 * Remove StrinkTokenizer, replace with boost::tokenizer
38 * Remove string procedures from Utils, replace with boost::string_algo
39 * Use boost::timer for internal timers
40
41 Scripting:
42 * Add commands to delete a hook
43 - return an iterator to the Hook
44 - this would require a new SMOB to be created
45 - Scheme could pass Hook objects around and do nifty things
46 - At least allow all hooks of a type with the same name field to be
47 deleted at once (also all hooks with the same name). Also allow
48 deleting based on the regexp
49
50 Networking:
51 * Add a networked interface to guile repl
52 - This can (should) be done as a script, but requires non-coop threads
53 support to be done easily (and thus requires Guile 1.8)
54 - Admins only
55 - Telnet
56 - Store authorized users and passwords in bot.telnet file
57 - Bot master can add new telnet users
58 - MUST HAVE PASSWORD
59 * See if Socket::readLine could be sped up (profile it first to see if
60 it even matters)
61
62 Definitely 3.0:
63 * Remove gh_* when Guile 1.8 is released
64 * Replace large select-loop in Bot::waitForInput with multithreaded
65 - To clarify: There will be one thread for DCCs and another thread
66 for the current irc server connection, each with its own select
67 loop. There may also be a thread for the network repls if I
68 implement those.
69
70 Maybe:
71 * Make it possible to use Scheme functions in the Parser itself