]> jfr.im git - erebus.git/blob - TODO
urls - fix error messages working
[erebus.git] / TODO
1 vim: expandtab sw=2 ts=2
2
3 - add (optional) timeout for wait_for_hidden_host
4
5 - add ability for modules to register additional sockets to monitor
6 (and socket_listener example module)
7 also FDs so the bot can monitor a pipe
8 - add a pipe which allows to input commands even when IRC connection is gone
9 this might be difficult since there won't be a bot or user or chan object...
10
11 - implement timers in the core and/or modlib, by adjusting the select timeout whenever a timer is pending.
12 call timers as part of the event loop.
13 this has the potential to remove a LOT of the threading.
14
15 - fix crash when joining a channel that is forwarded (or otherwise force-joined by the server)
16
17 - fix urls:
18 - disallow private addresses as much as possible
19 - add a time limit if possible
20
21 - add module with !join / !part / is there clevel management? etc
22
23 - add SQL "migrations" support to core for modules
24 and store module data in SQL instead of json's
25
26 - better config... or better yet just move non-DB-related config into the database
27 - needs a better format if its used for generic module data; particularly because /\s#/ starts a comment instead of naming a channel
28 - needs to retain comments when config file is saved
29
30 - a module for administering channel users (copy from admin_user) and adding/removing channels
31
32 - modlib function for parsing option arguments (like !MODLOAD has now)
33
34 - modlib 'onload' hook so modules can easily do stuff on loading
35 (if this exists use it to replace _key() in steam.py)
36
37 - modlib 'need_config' function to tell the modlib you refuse to start without
38 a config value being specified
39
40 - add new hook types
41 - 'regexhook' for watching messages matching a regex
42 (should this be supported in core or
43 just by modlib translating into a numhook('PRIVMSG')?)
44 - 'msghook' for watching all messages (like numhook('PRIVMSG') but
45 you don't have to handle parsing)
46 - add a way to specify a config value as a hook parameter without needing
47 parent (i.e. delayed resolution)
48
49 - weather module using accuweather API, forecasts
50
51 - fix softdeps, if they're used through lib.mod() or parent.module() they break, need a `'mod' in modules` check somewhere
52
53 - ctlmod.unload: track what modules are unloaded and return that info to caller