X-Git-Url: https://jfr.im/git/erebus.git/blobdiff_plain/de66fe6d5bb5be3278beef5daa4fcff562d256f6..HEAD:/TODO diff --git a/TODO b/TODO index c00ec4e..b849f98 100644 --- a/TODO +++ b/TODO @@ -2,19 +2,19 @@ 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... +- ability for modules to register additional sockets to monitor + - this is basically done but needs more testing on non-TCP and error conditions + the module interface should probably be simplified too + - 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... + +- add optional message wrapping in the core (instead of just truncation) - 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. -- a module to set config settings at runtime - or at least commands to set some config settings like autoloading a module - - fix crash when joining a channel that is forwarded (or otherwise force-joined by the server) - fix urls: @@ -33,3 +33,32 @@ vim: expandtab sw=2 ts=2 - 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 + +- lookup User object by auth + modules should be able to (attempt to) look up a User object by auth, that way if the user is online + !clevel and !glevel can look up their existing object and adjust the permissions there + +- sockets module: wrapping should operate on byte-level not string-level + sentences with unicode text get wrapped wrong + ... but the wrapping point needs to be determined at the string-level ugh