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