PyIRC issueshttps://code.foxkit.us/IRC/PyIRC/-/issues2019-09-02T19:55:45Zhttps://code.foxkit.us/IRC/PyIRC/-/issues/12Extension to smooth over IRC daemon specific stuff2019-09-02T19:55:45ZElizabeth MyersExtension to smooth over IRC daemon specific stuffI 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...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?
First releasehttps://code.foxkit.us/IRC/PyIRC/-/issues/7Unit tests2019-09-02T19:55:45ZElizabeth MyersUnit testsWe need unit tests! Mocking things is probably the way to go here for anything network-based. The library should be pretty easy to write tests for.We need unit tests! Mocking things is probably the way to go here for anything network-based. The library should be pretty easy to write tests for.First release