Add gnulib gettext module for config.rpath
[clinton/bobotpp.git] / TODO
diff --git a/TODO b/TODO
dissimilarity index 67%
index 9fcb80d..643eff2 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,62 +1,73 @@
-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
-
-2.2:
-* 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
-* Configuration Database
-* Improve the help syst
-* DCC FILE support (sending and recieving)
-* XDCC file server script (requires DCC FILE support)
-* 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)
-
-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 be done as a script, but requires non-coop threads
-     support to be done easily
-   - Admins only
-   - Telnet
-   - Store authorized users and passwords in bot.telnet file
-   - Bot master can add new telnet users
-   - MUST HAVE PASSWORD
-   - Maybe use SSL?
-
-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
-   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.
-   UPDATE[2002-12-22]: Guile CVS now has support for full pthreads, no
-   more coop stuff. After 1.8 is released threads will probably be
-   used.
-   - 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.
\ No newline at end of file
+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
+* Wrote config database class
+* Compile without warnings
+* bot:protection/[none|no-ban|no-kick|no-deop] constants
+* bot:aop/[no|yes] constants
+* 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
+* 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
+* Enhance global UserList
+  - Add something similar to the UserList per server, but storing
+    *every* user ever seen in any channel
+  - Channel user lists should merely maintain pointers into this
+  - Rename UserList to AuthenticationList or similar to reflect its
+    actual purpose, and clean up its interface
+
+2.4/3.0 (2.4 iff backwards compatibility is maintained, 3.0 otherwise):
+General:
+* 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).
+* 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:
+* 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:
+* Make it possible to use Scheme functions in the Parser itself
\ No newline at end of file