3
0
mirror of https://github.com/jlu5/PyLink.git synced 2025-02-23 08:50:44 +01:00
James Lu e76d31d14e relay: fixes to KICK handling, don't allow spawning new pseudoclients for trivial tasks like TOPIC or PART
This introduces a new spawnIfMissing option in getRemoteUser, which defaults to True and toggles spawning new pseudoclients if one is not found for a certain network.
In the case of TOPIC or PART being sent, we'll want this turned off because we can either 1) route these through our PyLink server SID, or 2) ignore these entirely.

For KICK handling, this commit fixes kicks sent from servers or clients that don't have a pseudoclient on the target network, by tagging them in the message and routing them through our main PyLink SID.
Normal kicks still behave as usual:

* You have been kicked from #endlessvoid by GLo|o|/ovd (test)
* You have been kicked from #endlessvoid by pylink-devel.overdrive.pw ((ChanServ/ovd) (GLo|o| (GLolol)) test)
* You have been kicked from #endlessvoid by pylink-devel.overdrive.pw ((some.server.name/ovd) No reason given)
2015-07-19 23:49:50 -07:00
2015-07-18 20:13:53 -07:00
2015-07-12 16:28:33 -07:00
2015-05-31 12:20:09 -07:00
2015-06-20 21:10:50 -07:00
2015-07-15 23:15:08 -07:00

PyLink

PyLink is an extensible, plugin-based IRC PseudoService written in Python. It aims to be a replacement for the now-defunct Janus.

Usage

PyLink is a work in progress and thus may be very unstable! No warranty is provided if this completely wrecks your network and causes widespread rioting throughout your user base!

That said, please report any bugs you find to the issue tracker. Pull requests are open if youd like to contribute.

Dependencies

Dependencies currently include:

  • InspIRCd 2.0.x: more protocol modules may be implemented in the future…
  • Python 3.4+
  • PyYAML (pip install pyyaml or apt-get install python3-yaml)

Installation

  1. Rename config.yml.example to config.yml and configure your instance there. Not all options are properly implemented yet, and the configuration schema isnt finalized yet - this means your configuration may break in an update!

  2. Run main.py from the command line.

  3. Profit???

Languages
Python 100%