mirror of
https://github.com/jlu5/PyLink.git
synced 2024-11-24 03:29:28 +01:00
20474dabac
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. |
||
---|---|---|
log | ||
plugins | ||
protocols | ||
tests | ||
.gitignore | ||
classes.py | ||
conf.py | ||
config.yml.example | ||
coreplugin.py | ||
kill.sh | ||
LICENSE | ||
log.py | ||
main.py | ||
README.md | ||
start-cpulimit.sh | ||
utils.py |
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. Pull requests are open if you’d like to contribute.
Dependencies
Dependencies currently include:
- Python 3.4+
- PyYAML (
pip install pyyaml
orapt-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
Rename
config.yml.example
toconfig.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!Run
main.py
from the command line.Profit???