[project @ 2005-06-23 06:20:44 by unknown_lamer]
[clinton/bobotpp.git] / TODO
diff --git a/TODO b/TODO
index bd4a5a1..3842b65 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,16 +1,46 @@
-2.2 will be released when most of these are done
+Done:
+* 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
+* Wrote config database class
+* Compile without warnings
+* bot:protection/[none|no-ban|no-kick|no-deop] constants
+* bot:aop/[no|yes] constants
 
+2.2:
+* Finish Texinfo manual
+* Register a lazy catch handler (in Interp::Startup) that prints more
+   debug info to the log (filename, line number, column number,
+   etc.). Check the mod_guile source for the lazy catch handler in it.
+* 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
+* Add DCC_CHAT_END hook for Scheme
+
+2.4: 
+* Use configuration database class
+* 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
+
+2.4/3.0 (2.4 iff backwards compatibility is maintained, 3.0 otherwise):
 General:
-* Make String operator >> act like all other >>'s, and add getline?
+* 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).
-* Replace large select-loop in Bot::waitForInput with multithreaded
-   CC++ sockets (this will require locking around everything Guile
-   related). UPDATE[2002-11-02]: Guile CVS now has coop threads built
-   on top of pthreads, which I could probably use when 1.8 nears
-   release.
+  have getters/setters added (e.g. logFileName in Bot--if this is
+  changed the log file doesn't change after the Bot is started).
+* DCC FILE support (sending and recieving)
+* 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
 
 Scripting:
 * Add commands to delete a hook
@@ -20,28 +50,28 @@ Scripting:
    - 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
-* 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
-* Lock around Guile Operations
 
 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
-* Make connecting to irc.oftc.net work...I wonder if their ircd is
-   broken (it appears to be so because AthenaIRC on Mac OS X [the IRC
-   client I use at school] cannot connect to oftc either, giving the
-   error 'some command didn't have enough arguments')
-* DCC FILE support (this can be done as a script)
+* See if Socket::readLine could be sped up (profile it first to see if
+   it even matters)
 
-Documentation:
-* Work on Texinfo manual (especially scripting section)
-
-Other (post 2.2 release):
+Definitely 3.0:
 * Remove gh_* when Guile 1.8 is released
+* 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.
+
+Maybe:
+* 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)
 * Make it possible to use Scheme functions in the Parser itself
\ No newline at end of file