Extension to smooth over IRC daemon specific stuff
I think there should be a submodule in extensions called ircd
, which has a further submodule that has an extension that loads an IRC daemon-specific extension, depending on the IRC daemon discovered at runtime (this can rarely be known in advance, and even so, should be autodetected anyway; people change IRC daemons sometimes).
This sounds complicated but it really isn't that bad. Basically you'd have PyIRC.extension.ircd.advancedapi
or so. This imports the appropriate extension for that IRC daemon that implements the API. This can be used for emitting STATS events in an independent way, handling extban parsing (inspircd uses the abominable extban chaining, whereas charybdis doesn't, for example), and more.
With the advanced API, callouts could also be provided similar to basicapi
. You can call the advanced API functions, and it will provide IRC daemon specific functionality transparently to you, without fucking around with it manually.
Thoughts?