The always matcher is a special case which simply always matches a skill to every single event that passes through opsdroid.

When an event is parsed all skills are ranked by the parsers in order of how confident they are that the message is a match, and then the highest ranking skill is executed. The always matcher is useful if you are wanting to do something like keep track of the last time someone spoke, so you need the skill to execute on every message and you will never directly respond to a message.


Return always match decorator.

Decorator that parses every message as it is always running, it does not be need to be configured explicitly.


Decorated Function


from opsdroid.skill import Skill
from opsdroid.matchers import match_always

class TrackingSkill(Skill):
    async def keep_track(self, message):
        # Put message.user into a database along with a timestamp