summaryrefslogtreecommitdiff
path: root/doc/Howto_Write_Plugins
blob: 4fce64d221afec538a788be77460866a42471d90 (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 declare a member which shadows one from the original class:
       ``description``, ``author``, ``status``, ``menus``, ``name``, ``calls``, ``deps``, ``enabled``, ``add_widget``, ``create_widget``, ``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
ed2imap-go.git/commit/pkg/version/version.go?id=bb0ebc0b82b5804661ce69941495a860cbc4046f&follow=1'>Prepare v0.3.1René 'Necoro' Neumann2-2/+6 2020-05-12Docker SetupRené 'Necoro' Neumann4-31/+48 2020-05-12Fix README.md after mergeRené 'Necoro' Neumann1-2/+1 2020-05-12add docker stuffRuediger Küpper3-0/+44 2020-05-11Reorganize flag handlingRené 'Necoro' Neumann1-17/+30 2020-05-11Use stable version of gofeedRené 'Necoro' Neumann2-3/+3 2020-05-10Prepare release 0.3.0v0.3.0René 'Necoro' Neumann3-5/+6 2020-05-10Fixed linebreaks for Enclosures in text templateRené 'Necoro' Neumann1-5/+5 2020-05-10Upgrade html2textRené 'Necoro' Neumann2-5/+3 2020-05-10Switch to our own html2text fork for the time beingRené 'Necoro' Neumann3-5/+5 2020-05-10Text part in emailsRené 'Necoro' Neumann7-33/+115 2020-05-10Allow options on group level.René 'Necoro' Neumann3-5/+11 2020-05-10Renamed feed template to html templateRené 'Necoro' Neumann2-2/+2 2020-05-10Release v0.2.0v0.2.0René 'Necoro' Neumann2-2/+6 2020-05-10Fix building cacheRené 'Necoro' Neumann1-1/+3 2020-05-10Update READMERené 'Necoro' Neumann1-5/+44 2020-05-10Ignore 'dist' folder and build productsRené 'Necoro' Neumann1-0/+2 2020-05-08Print item hashes in debug modeRené 'Necoro' Neumann1-1/+7 2020-05-07Improve html renderingRené 'Necoro' Neumann2-53/+32 2020-05-07Do not assume items to be new when their published date is newer than the las...René 'Necoro' Neumann2-7/+1 2020-05-07Updating some depsRené 'Necoro' Neumann2-2/+7 2020-05-07Better detection if a text starts with html or notRené 'Necoro' Neumann2-4/+13 2020-05-07go fmtRené 'Necoro' Neumann1-3/+2 2020-05-07Add header X-Feed2Imap-GUIDRené 'Necoro' Neumann3-1/+7 2020-05-07update changelogRené 'Necoro' Neumann1-0/+1 2020-05-07FixRené 'Necoro' Neumann1-1/+1 2020-05-07Unified publishedDate and updatedDate into one (just as the old feed2imap...)René 'Necoro' Neumann5-21/+32 2020-05-06Print version during startupRené 'Necoro' Neumann1-1/+1 2020-05-06Improve templateRené 'Necoro' Neumann3-20/+28 2020-05-05Fix pipelineRené 'Necoro' Neumann1-2/+5 2020-05-05Make changelog a part of the release pipeline (untested)René 'Necoro' Neumann2-0/+12