summaryrefslogtreecommitdiff
path: root/doc/Howto_Write_Plugins
blob: bb63120d08d29c02a565c016539f8e49812bbe1f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
HowTo Write A Plugin For Portato
=================================

Writing plugins for Portato is quite easy: (Nearly) all you have to do is to write a plain Python module :).

A plugin has two more builtins than a normal Python module:

    ``Plugin``
        This is a class representing a plugin.

    ``register``
        A function which you have to call to get the your plugin added to Portato.

In this module you need to have at least one class, which inherits from ``Plugin``. This class does all the handling you want your plugin to do. If you want, you can implement more classes - from Portato's view they are handled as different plugins. Thus: It is not the module hierarchy, but the classes that count.
Add the end you only call ``register`` once for each class and are done :).

Of course there are some things you should bare in mind:
    
    1. Do not use the ``__init__`` method, but ``init``.
    2. Do not use a member which shadows one from the original class:
       ``description``, ``author``, ``status``, ``menus``, ``name``, ``calls``, ``deps``, ``enabled``, ``add_menu``, ``add_call``
    3. Of course you can *use* the members mentioned under point 2.

For the details, please see the source code at the moment or write your question to portato@necoro.net

.. vim: ft=rst
m?h=v0.6.0&id=44f53f5956216cdd52ad58d6e666013a8f202967&follow=1'>Update depsRené 'Necoro' Neumann2-1/+12 2020-05-04Update README.mdRené 'Necoro' Neumann1-3/+4 2020-05-04Fix for go-imap-uidplus has gone upstream, delete replace.René 'Necoro' Neumann2-7/+3 2020-05-04when tls verification is disabled for the feed, we should also disable this f...René 'Necoro' Neumann1-3/+4 2020-05-03Better handling of embedded images with relative urlsRené 'Necoro' Neumann1-13/+27 2020-05-03Slightly enhance loggingRené 'Necoro' Neumann1-4/+4 2020-05-03Explicit version infoRené 'Necoro' Neumann4-12/+15 2020-05-03--version flagRené 'Necoro' Neumann1-0/+6 2020-05-03Rename from 'client' to 'cl'René 'Necoro' Neumann5-26/+26 2020-05-03Use UIDPLUS Imap extensionRené 'Necoro' Neumann4-11/+33 2020-05-03Fix update in IMAPRené 'Necoro' Neumann1-2/+12 2020-05-03Update support for IMAPRené 'Necoro' Neumann5-17/+205 2020-05-03Option "reupload-if-updated"René 'Necoro' Neumann2-0/+4 2020-05-03Fix typoRené 'Necoro' Neumann1-2/+2 2020-05-02Use uuid library directly and encode to base64.René 'Necoro' Neumann6-10/+16 2020-05-02RestructureRené 'Necoro' Neumann8-95/+111 2020-05-02WIP: Message-IdsRené 'Necoro' Neumann8-5/+40 2020-05-02Typo and mention config example in READMERené 'Necoro' Neumann2-1/+3