49 lines
1.6 KiB
ReStructuredText
49 lines
1.6 KiB
ReStructuredText
Introduction
|
|
============
|
|
|
|
A PDB module is a simple python package, ie. a folder which contains a ``__init__.py`` file. A valid module must have a
|
|
file named ``infos.toml`` which contains some informations about the module, and ``__init__.py__`` must have one thing:
|
|
a variable named ``__main_class__``, which point to a class, and this class must have a method named ``__dispatch__``.
|
|
|
|
Lets look a simple example:
|
|
|
|
.. code-block::
|
|
|
|
└─── modules
|
|
└─── my_module
|
|
├── infos.toml
|
|
└── __init__.py
|
|
|
|
Now examine ``infos.toml`` file:
|
|
|
|
.. code-block:: toml
|
|
:linenos:
|
|
|
|
version = "0.1.0"
|
|
bot_version = "~=0.2.0"
|
|
|
|
This file is minimal, but necessary to describe your module, and fields are very clear:
|
|
|
|
- ``version`` is version of module
|
|
- ``bot_version`` is the required version of bot (the ``~=`` is to say version ``0.2.0`` or compatible)
|
|
|
|
You can refer to ``version`` section for more informations about ``version`` and ``bot_version`` fields, and
|
|
``infos file`` section for other fields of this file.
|
|
|
|
Now look at ``__init__.py``
|
|
|
|
.. code-block:: python
|
|
:linenos:
|
|
|
|
class MyModule:
|
|
def __dispatch__(self, event_name, *args, **kwargs):
|
|
pass
|
|
|
|
__main_class__ = MyModule
|
|
|
|
|
|
As you can see a module is very simple.
|
|
|
|
``__dispatch__`` method will be called for each event, these events are listed in section ``events``. As you can see,
|
|
there is a lot of event types, and handle them manually will be very long, so there is a module, who parse them, and
|
|
call ``on_{event}`` method, and an other one who parse message to handle commands. In next part we learn to use them. |