David Macek 3d21c7cbcb Services: Keep per-network state separate
Until now, only `waitingJoins` was stored separately per network, while
`channels`, `sentGhost` and `identified` had one common value per plugin
instance.  Instead of making everything a dictionary indexed by network
name like `waitingJoins`, let's bundle all the state together in a class
and store *its* instances in such a dictionary.

This fixes at least one race condition, for which a test case was added.
Even with `noJoinsUntilIdentified` set, the bot would let joins through
as long as *any* one network has already finished identifying.
2021-04-27 19:52:58 +02:00
2020-03-26 22:10:28 +01:00
2014-12-08 09:52:42 +02:00
2015-03-04 00:32:40 -05:00
2020-05-15 11:28:09 -07:00

Supybot is a robust (it doesnt crash), user friendly (its easy to configure) and programmer friendly (plugins are extremely easy to write) Python IRC bot. It aims to be an adequate replacement for most existing IRC bots. It includes a very flexible and powerful ACL system for controlling access to commands, as well as more than 50 builtin plugins providing around 400 actual commands.

Limnoria is the project which continues development of Supybot since 2010.

Build status

Master branch: Build Status (master branch)

Testing branch: Build Status (testing branch)

Limnoria supports CPython 3.4 to 3.9, CPython nightly, and Pypy 3.

Support

Documentation

If this is your first install, there is an install guide. You will probably be pointed to it if you ask on IRC how to install Limnoria. TL;DR version:

sudo apt-get install python3 python3-pip python3-wheel
pip3 install --user limnoria
# You might need to add $HOME/.local/bin to your PATH
supybot-wizard

There is extensive documentation at docs.limnoria.net and at Gribble wiki. We took the time to write it; you should take the time to read it.

IRC channels

In English

If you have any trouble, feel free to swing by #limnoria on freenode and ask questions. Well be happy to help wherever we can. And by all means, if you find anything hard to understand or think you know of a better way to do something, please post it on the issue tracker so we can improve the bot!

In Other languages

Only in French at the moment, located at #supybot-fr on freenode.

Description
No description provided
Readme 40 MiB
Languages
SCSS 79.2%
HTML 10.4%
Shell 8.4%
Ruby 2%