X-Git-Url: https://jfr.im/git/erebus.git/blobdiff_plain/7d69441a28d66e0e898b28d5bbc440ffc276f96e..b91b84fabab3a5dbbc50cae53a54dcedaa96d903:/TODO diff --git a/TODO b/TODO index 49522cc..5aaca0d 100644 --- a/TODO +++ b/TODO @@ -1,4 +1,53 @@ -- Store User and Channel objects -- Add no-such-command error to Bot().parsemsg -- Add level checking to Bot().parsemsg -- Add PM-to-bot support +vim: expandtab sw=2 ts=2 + +- add (optional) timeout for wait_for_hidden_host + +- add ability for modules to register additional sockets to monitor + (and socket_listener example module) + also FDs so the bot can monitor a pipe + - add a pipe which allows to input commands even when IRC connection is gone + this might be difficult since there won't be a bot or user or chan object... + +- implement timers in the core and/or modlib, by adjusting the select timeout whenever a timer is pending. + call timers as part of the event loop. + this has the potential to remove a LOT of the threading. + +- fix crash when joining a channel that is forwarded (or otherwise force-joined by the server) + +- fix urls: + - disallow private addresses as much as possible + - add a time limit if possible + +- add module with !join / !part / is there clevel management? etc + +- add SQL "migrations" support to core for modules + and store module data in SQL instead of json's + +- better config... or better yet just move non-DB-related config into the database + - needs a better format if its used for generic module data; particularly because /\s#/ starts a comment instead of naming a channel + - needs to retain comments when config file is saved + +- a module for administering channel users (copy from admin_user) and adding/removing channels + +- modlib function for parsing option arguments (like !MODLOAD has now) + +- modlib 'onload' hook so modules can easily do stuff on loading + (if this exists use it to replace _key() in steam.py) + +- modlib 'need_config' function to tell the modlib you refuse to start without + a config value being specified + +- add new hook types + - 'regexhook' for watching messages matching a regex + (should this be supported in core or + just by modlib translating into a numhook('PRIVMSG')?) + - 'msghook' for watching all messages (like numhook('PRIVMSG') but + you don't have to handle parsing) + - add a way to specify a config value as a hook parameter without needing + parent (i.e. delayed resolution) + +- weather module using accuweather API, forecasts + +- fix softdeps, if they're used through lib.mod() or parent.module() they break, need a `'mod' in modules` check somewhere + +- ctlmod.unload: track what modules are unloaded and return that info to caller