Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • PyIRC PyIRC
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 8
    • Issues 8
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • Deployments
    • Deployments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Repository
    • Value stream
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • IRC projects
  • PyIRCPyIRC
  • Issues
  • #12

Closed
Open
Created Jul 20, 2015 by Elizabeth Myers@Elizafox💬Owner

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?

Assignee
Assign to
Time tracking