Go to file
Valentin Lorentz 4da1291876 URL: Lazily deserialize records from the end in @last
Before this commit, the plugin first fetched a list of all
(deserialized) records in a list, then reversed the list, and iterated
on the reverse list.
This proved to be slow, with most of the time being spent in
`dbi.DB._newRecord` (which essentially deserializes one list of CSV).

After this commit, the list is reversed first, then the plugin iterates
on its generator, which calls `_newRecord` on records as they are
requested.

This means that when there are many URLs in the database, `@last` does
not need to waste time deserializing most records, when the result is
near the end (and if the result is the first record, then it does
exactly as much work as before).
2022-10-30 20:46:35 +01:00
.github/workflows Bump CI version from 3.11.0-alpha.2 to 3.11.0-rc.2 2022-09-18 20:06:34 +02:00
locales all: Update .pot and .po files 2022-02-06 00:14:47 +01:00
man Add missing man page for supybot-reset-password. 2022-06-17 09:09:20 +02:00
plugins URL: Lazily deserialize records from the end in @last 2022-10-30 20:46:35 +01:00
sandbox sandbox/update_pot.py: Run msgmerge as well 2022-02-06 00:12:42 +01:00
scripts supybot-plugin-doc: default to RST 2022-07-09 14:24:13 -07:00
src URL: Lazily deserialize records from the end in @last 2022-10-30 20:46:35 +01:00
test Make TimeoutQueue.iter() actually expire items 2022-10-24 23:43:52 +02:00
.gitattributes Remove test from .gitattributes 2015-03-04 00:32:40 -05:00
.gitignore .gitignore: add doc-* paths from supybot-plugin-doc 2022-07-09 14:15:33 -07:00
.mailmap .mailmap: update my email 2020-05-15 11:28:09 -07:00
ChangeLog Use gender-neutral pronouns everywhere 2014-07-13 17:23:11 +02:00
CONTRIBUTING.md Fix broken links in CONTRIBUTING.md. 2019-01-02 14:32:22 +01:00
LICENSE.md License: Fix formatting again. (GH-862) 2014-09-22 05:27:09 +00:00
Makefile Add a symlink supybot pointing to src/ + move locales/ to src/ 2019-01-02 14:29:32 +01:00
MANIFEST.in Explicitly include test/ in release tarballs. Closes GH-1384. 2019-10-28 18:17:13 +01:00
pyproject.toml Geography: run Black 2021-11-09 22:41:40 +01:00
README.md Remove Travis badges 2021-11-19 09:53:31 +01:00
RELNOTES supybot-botchk: Directly execute supybot instead of running it in sh 2013-08-23 21:42:01 -04:00
requirements.txt requirements.txt: Classify and provide a rationale for each dependency 2022-07-20 18:31:24 +02:00
setup.py Add missing man page for supybot-reset-password. 2022-06-17 09:09:20 +02:00
supybot Add a symlink supybot pointing to src/ + move locales/ to src/ 2019-01-02 14:29:32 +01:00

Limnoria is a multipurpose Python IRC bot, designed for flexibility and robustness, while being easy to install, set up, and maintain.

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, an equality powerful configuration system to customize your bot, as well as more than 60 builtin plugins providing around 400 actual commands.

There are also dozens of third-party plugins written by dozens of independent developers, and it is very easy to write your own with only basic knowledge of Python.

It is the successor of Supybot since 2010 and provides many new features, but keeps full compatibility with existing configurations and plugins.

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 Libera.Chat 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 #limnoria-fr on Libera.Chat.