mirror of
https://github.com/jlu5/PyLink.git
synced 2026-04-30 20:58:04 +02:00
Closes #85. Nick collisions caused by internal clients are handled fine now, including the following cases: - Abusing spawnClient to create a user with the same nick as a relay client, but with a lower TS. - When both an UID (e.g. 42XAAAAAA) and a tagged UID (_42XAAAAAA) exist on the same network (the two will both try to take the same nick of _42XAAAAAA/net over the relay). The case where changing NICK from a long cut-off nick to another long cut-off nick is also mitigated. somelongnick/net won't show nick changes to somelongnic//net if the old and new nicks have give the same normalized relay nick. This introduces a new dependency, expiringdict, from https://pypi.python.org/pypi/expiringdict/1.1.2, which is used as a cache for flood prevention.
# 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 amongst your users! That said, please report any bugs you find to the [issue tracker](https://github.com/GLolol/PyLink/issues). Pull requests are open if you'd like to contribute. ### Dependencies Dependencies currently include: * Python 3.4+ * PyYAML (`pip install pyyaml` or `apt-get install python3-yaml`) * *For the relay plugin only*: expiringdict (`pip install expiringdict`/`apt-get install python3-expiringdict`) #### Supported IRCds * InspIRCd 2.0.x - module `inspircd` * charybdis (3.5.x / git master) - module `ts6` * Elemental-IRCd (6.6.x / git master) - module `ts6` ### 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 isn't finalized yet - this means that your configuration may break in an update! 2) Run `main.py` from the command line. 3) Profit???
Languages
Python
100%