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