Event Filtering
Event filtering has been added as part of the new Robot Wire Protocol and corresponding client libraries. The goal of event filters is to minimize the load on both robots and the Google Wave infrastructure by limiting events passed on to robots through a logical mechanism.
Event filters can be utilized by including an optional regular
expression for a registered event handler. The exact interpretation of the
regular expression depends on the type of event being filtered. Typically
the filter will match the value associated with the event against the
regular expression and, if there is a match, proceed to send the event to
the robot. This approach can minimize trivial and irrelevant calls to your
robot, and this is especially effective for reducing load associated with
the DocumentChanged event, which is fired every time that a
blip’s content is changed.[40]
For example, we can limit calls to a robot by using an event filter
that matches text enclosed in double brackets. By using the
register_handler method for the DocumentChanged event, we can add a filter
based on a regular expression that matches double brackets. The code would
look something like this:
someRobot.register_handler(events.DocumentChanged,
onNewMatch,
filter="\[\[.*\]\]")It’s worth noting that the event filter is applied to the entire content of a changed blip, so any operations that the robot performs on content that do not alter the matched content mean that the robot will subsequently be called again ...