def get_extension(self, ext): """ Get API for given extension """ if hasattr(self, ext): return getattr(self, ext) if not ext in self._plugins: self._plugins[ext] = plugin.get_plugin(ext)[-2]() self._plugins[ext]._extension_connect(self) self._plugins[ext]._extension_activate() return self._plugins.get(ext)
def activate_extension(self, ext, *args, **kwargs): """ Activate the given plugin """ if hasattr(self, ext): # auto connected extensions return getattr(self, ext) if not ext in self._plugins: # Add extension plugin to the client. disco, cls = plugin.get_plugin(ext)[:2] obj = cls() obj._xmpp_disco = disco obj._extension_connect(self) obj._extension_activate(*args, **kwargs) self._plugins[ext] = obj for feature in self._plugins[ext]._xmpp_disco: if feature and not feature in self.features: self.features.append(feature) return self._plugins[ext]