From d6b8ca50f2c046aa1248173f453b3804f40c479a Mon Sep 17 00:00:00 2001 From: mathieui Date: Mon, 7 Nov 2011 15:09:39 +0100 Subject: [PATCH] Remove first&last and only use "position" in plugins events --- src/events.py | 11 ++++------- src/plugin.py | 4 ++-- src/plugin_manager.py | 4 ++-- 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/src/events.py b/src/events.py index d4fc8fc6..22d60ddf 100644 --- a/src/events.py +++ b/src/events.py @@ -30,23 +30,20 @@ class EventHandler(object): 'muc_msg': [], } - def add_event_handler(self, name, callback, first=True, last=False, position=None): + def add_event_handler(self, name, callback, position=0): """ Add a callback to a given event. Note that if that event name doesn’t exist, it just returns False. If it was successfully added, it returns True + position: 0 means insert a the beginning, -1 means end """ if name not in self.events: return False - if first: - self.events[name].insert(0, callback) - elif last: - self.events[name].append(callback) - elif position != None and isinstance(position, int): + if position >= 0: self.events[name].insert(position, callback) else: - self.events[name].insert(0, callback) + self.events[name].append(callback) return True diff --git a/src/plugin.py b/src/plugin.py index 0b4f3f3a..80bc4dfc 100644 --- a/src/plugin.py +++ b/src/plugin.py @@ -85,8 +85,8 @@ class BasePlugin(object, metaclass=SafetyMetaclass): def del_event_handler(self, event_name, handler): return self.plugin_manager.del_event_handler(self.__module__, event_name, handler) - def add_poezio_event_handler(self, event_name, handler, first=True, last=False, position=None): - return self.plugin_manager.add_poezio_event_handler(self.__module__, event_name, handler, first, last, position) + def add_poezio_event_handler(self, event_name, handler, position=0): + return self.plugin_manager.add_poezio_event_handler(self.__module__, event_name, handler, position) def del_poezio_event_handler(self, event_name, handler): return self.plugin_manager.del_poezio_event_handler(self.__module__, event_name, handler) diff --git a/src/plugin_manager.py b/src/plugin_manager.py index 37db3d13..bdf94a5b 100644 --- a/src/plugin_manager.py +++ b/src/plugin_manager.py @@ -107,10 +107,10 @@ class PluginManager(object): eh = self.event_handlers[module_name] eh = list(filter(lambda e : e != (event_name, handler), eh)) - def add_poezio_event_handler(self, module_name, event_name, handler, first, last, position): + def add_poezio_event_handler(self, module_name, event_name, handler, position): eh = self.poezio_event_handlers[module_name] eh.append(handler) - self.core.events.add_event_handler(event_name, handler, first, last, position) + self.core.events.add_event_handler(event_name, handler, position) def del_poezio_event_handler(self, module_name, event_name, handler): self.core.events.del_event_handler(None, handler)