No description
Find a file
Maxime “pep” Buquet 833cccb188 Rework priority handling for events
Introduce the concept of priority for event handlers, instead of the
position parameter.

The new `priority` parameter replacing `position` should be an integer
between 0 and 100. It defaults to 50.

The previous `position` parameter was only used to insert at a certain
position in the list of handlers (for this particular event). No
reference of it was kept, which means that it was not possible to ensure
an event was called in the position is was supposed to be.

I am now using per-event dicts, containing priority buckets (lists) of
handlers. I am using OrderedDicts to make it easier to loop through all
of the handlers, as insertion happens less often than reading.

I was also suggested using bisect with a simple list of tuples
(priority, handler) per event, but bisect tries to compare bound
methods, which is obviously not possible. Maybe it would be interesting
to find a way use this method instead of OrderedDict as that might be
less resource consuming.

This said, I don't think this part of poezio is a bottleneck at all, so
maybe this is just fine as is.

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-06-22 03:01:02 +02:00
data Update urls to point to lab.louiz.org 2019-02-14 15:19:11 +00:00
doc doc: Rename keys into keyboard shortcuts, to be more easily discoverable 2019-04-21 14:15:33 +02:00
plugins Merge remote-tracking branch 'origin/mr/35' 2019-06-17 14:49:10 +02:00
poezio Rework priority handling for events 2019-06-22 03:01:02 +02:00
scripts
test logger: Log the JID during a parsing error. 2019-02-07 02:31:15 +01:00
.gitignore Add gitignore 2018-12-16 16:54:55 +00:00
.gitlab-ci.yml Remove the formatting-check ci build until we decide what we should do with it 2018-10-18 21:32:51 +02:00
.travis.yml Update travis CI 2018-08-11 13:03:56 +02:00
CHANGELOG Next version is 0.13 2018-08-14 20:01:54 +02:00
COPYING Add myself as a maintainer 2018-08-13 22:25:14 +02:00
Dockerfile Update urls to point to lab.louiz.org 2019-02-14 15:19:11 +00:00
launch.sh Rename hidden -v option to --custom-version and add a real -v (#3429) 2019-02-24 15:41:16 +01:00
Makefile
MANIFEST.in Ship appdata, flatpak manifest, and desktop files. 2018-08-20 22:06:24 +01:00
README.rst Update urls to point to lab.louiz.org 2019-02-14 15:19:11 +00:00
requirements-plugins.txt Also switch the potr plugin to https:// 2018-11-14 19:57:15 +01:00
requirements.txt Also switch the potr plugin to https:// 2018-11-14 19:57:15 +01:00
setup.py Remove now-obsolete hsluv dependency 2019-02-14 17:24:23 +01:00
update.sh

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

poezio
======

Homepage:      https://poez.io

Forge Page:    https://lab.louiz.org/poezio/poezio

Poezio is a console Jabber/XMPP client.  Its goal is to use anonymous
connections to simply let the user join MultiUserChats.  This way, the user
doesn't have to create a Jabber account, exactly like people are using
IRC.  Poezio's commands are designed to be (if possible) like commonly
used IRC clients (weechat, irssi, etc).

Since version 0.7, poezio can handle real Jabber accounts along with
roster and one-to-one conversations, making it a full-featured console
Jabber client, but still MultiUserChats-centered.
In the future, poezio should implement at a 100% level all XEP related to
MUCs, especially XEP 0045.

Install
=======

You need python 3.5 or higher (preferably the latest) and the associated devel
package, to build C modules, and the slixmpp python library.
You also need aiodns if you want SRV record support.

Additionally, youll need sphinx to build the documentation pages.
To read the documentation without these dependancies just read the rst
files in the doc/source/ directory or the generated documentation on the
website.

The simplest way to have up-to-date dependencies and to be able to test
this developement version is to use the ``update.sh`` script that downloads
them, places them in the right directory, and builds the C module.

You can then launch poezio with

::

    $ ./launch.sh

you can now simply launch ``poezio``

You can edit the configuration file which is located in
``~/.config/poezio/poezio.cfg`` by default, and you will have to copy
and edit ``data/default_config.cfg`` if you want to edit the config before
the first launch. The default config file is fully commented, but you can
also read the “Configuration” documentation page which has links between
options and longer descriptions.

Please see the online documentation for more information on installing,
configuring or using poezio: https://doc.poez.io/

If you still have questions, or if you're lost, don't hesitate to come
talk to us directly on our Jabber chat room (see Contact section).

Please DO report any bug you encounter and ask for any feature you want
(we may implement it or not, but its always better to ask).

Authors
=======

- Florent Le Coz (louiz) <louiz@louiz.org> (developer)
- Mathieu Pasquet (mathieui) <mathieui@mathieui.net> (developer)
- Emmanuel Gil Peyrot (Link Mauve) <linkmauve@linkmauve.fr> (developer)

Contact/support
===============

Jabber ChatRoom:   `poezio@muc.poez.io <xmpp:poezio@muc.poez.io?join>`_

Report a bug:      https://lab.louiz.org/poezio/poezio/issues/new

License
=======

Poezio is Free Software.
(learn more: http://www.gnu.org/philosophy/free-sw.html)

Poezio is released under the zlib License.
Please read the COPYING file for details.

The artwork logo was made by Gaëtan Ribémont and released under
the Creative Commons BY license (http://creativecommons.org/licenses/by/2.0/)


Hacking
=======

If you want to contribute, you will be welcome on
`poezio@muc.poez.io <xmpp:poezio@muc.poez.io?join>`_ to announce your
ideas, what you are going to do, or to seek help if you have trouble
understanding some of the code.

The preferred way to submit changes is through a merge request on gitlab,
at https://lab.louiz.org/poezio/poezio, but we also accept contributions
on github, or with a simple “please fetch my code on my personal git
repository hosted somewhere”


Thanks
======

- People:
    - Todd Eisenberger - Plugin system and OTR support
    - Jérôme Parment (Manfraid) - Code, testing
    - Akim Sadaoui - Code
    - Florian Duraffourg - Code
    - Frédéric Meynadier - Code
    - Georg Lukas - Code
    - Johannes Krude - Code
    - Łabędź - Code
    - Lasse Aagren - Code
    - Lancelot SIX - Code
    - Luke Marlin - Code
    - Maxime Buquet - Code
    - Nicolas Braud-Santoni - Code
    - Perdu - Code
    - Eijebong - Code
    - Gaëtan Ribémont - Logo design
    - Ovart - Testing
    - Koshie - Donation
    - Gapan - Makefile
    - FlashCode (weechat dev) - Useful advices on how to use ncurses efficiently
    - And all the people using and testing poezio, and especially the ones present
      on the jabber chatroom doing bug reports and/or feature requests.