def enable(self): client.register_event_handler("PluginEnabledEvent", self.get_remote_methods) client.register_event_handler("PluginDisabledEvent", self.get_remote_methods) if component.get("DelugeWeb").config["default_daemon"]: # Sort out getting the default daemon here default = component.get("DelugeWeb").config["default_daemon"] host = component.get("Web").get_host(default) if host: self.connect(*host[1:]) else: self.connect()
def add_listener(self, listener_id, event): """ Add a listener to the event queue. :param listener_id: A unique id for the listener :type listener_id: string :param event: The event name :type event: string """ if event not in self.__events: def on_event(*args): for listener in self.__events[event]: if listener not in self.__queue: self.__queue[listener] = [] self.__queue[listener].append((event, args)) client.register_event_handler(event, on_event) self.__handlers[event] = on_event self.__events[event] = [listener_id] elif listener_id not in self.__events[event]: self.__events[event].append(listener_id)