Skip to content

Middleware

All PBot middleware must inerit from the Middleware class. It's a minimal interface with a singular, handle_messages() function to implement.

Example

Example
1
2
3
4
5
6
7
from pbot.middleware.base import Middleware


class MySuperCoolMiddleware(Middleware):

  def handle_messages(self, messages: list[dict]) -> list[dict]:
    return []

For a more detailed example of custom middleware, see the TacoRecipes example in Writing Middleware.


Class API

Middleware

Bases: ABC

Base class for Pbot Middleware.

Source code in services/bot/src/pbot/middleware/base.py
class Middleware(ABC):
    '''Base class for Pbot Middleware.'''

    @abstractmethod
    def handle_messages(self, messages: list[dict]) -> list[dict]:
        '''Abstract method to override with your own.

        Args:
            messages (list[dict]): A list of messages dictionaries.

        Returns:
            list[dict]: A list of messages dictionaries.
        '''
        raise NotImplementedError

        return messages

handle_messages(messages) abstractmethod

Abstract method to override with your own.

Parameters:

Name Type Description Default
messages list[dict]

A list of messages dictionaries.

required

Returns:

Type Description
list[dict]

list[dict]: A list of messages dictionaries.

Source code in services/bot/src/pbot/middleware/base.py
@abstractmethod
def handle_messages(self, messages: list[dict]) -> list[dict]:
    '''Abstract method to override with your own.

    Args:
        messages (list[dict]): A list of messages dictionaries.

    Returns:
        list[dict]: A list of messages dictionaries.
    '''
    raise NotImplementedError

    return messages