Make Scheme hooks and timers threadsafe
[clinton/bobotpp.git] / TODO
CommitLineData
e45daca1 1Done (2.2):
c8f13c06 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
2e18045a 5* Wrote config database class
0316e2c1 6* Compile without warnings
af8c61fe 7* bot:protection/[none|no-ban|no-kick|no-deop] constants
8* bot:aop/[no|yes] constants
6b7614a8 9* Utils::valid_nickname_p should have a configurable max nick length
c7d8cfb9 10* More detailed script error reporting
11* Commands::sendCTCP, Commands::sendCTCPReply
133eff7a 12* Add DCC_CHAT_END hook for Scheme
528799bd 13* Implement ctcp-quote
c8f13c06 14
b4d6be9c 15Solved By Inactivity:
16* Remove gh_* when Guile 1.8 is released
17 Guile 1.8 was released ages ago; no need to put this off to 3.0
18* Add a networked interface to guile repl
19 Guile Debugging Server (GDS) does a fine job of this albeit only
20 intentionally on the localhost. The bot is not particularly
21 threadsafe and so the usefulness of GDS is limited...
cf8ea873 22
232.4:
b4d6be9c 24* Finish converting UserCommands to use Commands
25* Eliminate String class
26* Make internals threadsafe
27 - Need to lock *List, Hooks, and ServerQueue it seems
28* Convert Hooks and ServerQueue to internally use a std::priority_queue<>
cf8ea873 29* Extend AOP to support +v (0 = no op, 1 = +o, 2 = +v)
2e18045a 30* Add !setcommandlevel (move ScriptCommands implementation to Commands
31 and add a UserCommands)
cf8ea873 32* Improve the help system
b4d6be9c 33 - Generate help dynamically rather than using a static file
34 - Commands register help entries
528799bd 35* Enhance the scripting layer
b4d6be9c 36 - Implement ctcp-dequote
37 - Finish adding commands to Scheme for sending messages
38 - Finish adding hooks/send hooks
39 - Add commands to delete a hook
40 - Saner module loading
41 - Higher level interface (e.g. define-command NAME (ARGS) vs define +
42 bot:addcommand)
43 - New API in module (bobot++ FOO) instead of (bobotpp ...) to allow
44 old script to continue working with the old interface
45* DCC FILE support (sending and recieving)
46* Finish configuration database class
47* Finish Texinfo manual
2e20c3e1 48
c7d9fb19 492.4/3.0 (2.4 iff backwards compatibility is maintained, 3.0 otherwise):
2e20c3e1 50General:
ad529fde 51* Audit code and see what data in classes should be made private and
2e18045a 52 have getters/setters added (e.g. logFileName in Bot--if this is
53 changed the log file doesn't change after the Bot is started).
2e18045a 54* Possibly convert BotConfig to use boost::any instead of std::string
55 as t_value
56* Remove StrinkTokenizer, replace with boost::tokenizer
57* Remove string procedures from Utils, replace with boost::string_algo
58* Use boost::timer for internal timers
e07b6b46 59
c7d9fb19 60Definitely 3.0:
0a4eb469 61* Replace large select-loop in Bot::waitForInput with multithreaded
4edefeb6 62 - To clarify: There will be one thread for DCCs and another thread
4f4c0ce6 63 for the current irc server connection, each with its own select
64 loop. There may also be a thread for the network repls if I
65 implement those.
9efc3706 66
67Maybe:
9efc3706 68* Make it possible to use Scheme functions in the Parser itself