Source code for kismet_rest.messages

"""Messages abstraction."""

from .base_interface import BaseInterface


[docs]class Messages(BaseInterface): """Messages abstraction.""" kwargs_defaults = {"ts_sec": 0, "ts_usec": 0} url_template = "messagebus/last-time/{ts_sec}.{ts_usec}/messages.json"
[docs] def all(self, callback=None, callback_args=None, **kwargs): """Yield all messages, one at a time. If callback is set, nothing will be returned. Args: callback: Callback function. callback_args: Arguments for callback. Keyword args: ts_sec (int): Seconds since epoch for first message retrieved. ts_usec (int): Microseconds modifier for ts_sec query argument. Yield: dict: Message json, or None if callback is set. """ callback_settings = {} if callback: callback_settings["callback"] = callback if callback_args: callback_settings["callback_args"] = callback_args query_args = self.kwargs_defaults.copy() query_args.update(kwargs) url = self.url_template.format(**query_args) for result in self.interact_yield("GET", url, **callback_settings): yield result