Software /
code /
prosody
Diff
core/moduleapi.lua @ 5412:a5fcda77c6b1
moduleapi: have get_host_items wrap on get_items from modulemanager, also add has_{feature/identity} to the API.
author | Marco Cirillo <maranda@lightwitch.org> |
---|---|
date | Mon, 01 Apr 2013 23:44:28 +0000 |
parent | 5377:898454038524 |
child | 5434:9dd36e20c1e3 |
line wrap: on
line diff
--- a/core/moduleapi.lua Mon Apr 01 23:41:57 2013 +0000 +++ b/core/moduleapi.lua Mon Apr 01 23:44:28 2013 +0000 @@ -62,6 +62,20 @@ function api:add_extension(data) self:add_item("extension", data); end +function api:has_feature(xmlns) + for _, feature in ipairs(self:get_host_items("feature")) do + if feature == xmlns then return true; end + end + return false; +end +function api:has_identity(category, type, name) + for _, id in ipairs(self:get_host_items("identity")) do + if id.category == category and id.type == type and id.name == name then + return true; + end + end + return false; +end function api:fire_event(...) return (hosts[self.host] or prosody).events.fire_event(...); @@ -271,23 +285,7 @@ end function api:get_host_items(key) - local result = {}; - for mod_name, module in pairs(modulemanager.get_modules(self.host)) do - module = module.module; - if module.items then - for _, item in ipairs(module.items[key] or NULL) do - t_insert(result, item); - end - end - end - for mod_name, module in pairs(modulemanager.get_modules("*")) do - module = module.module; - if module.items then - for _, item in ipairs(module.items[key] or NULL) do - t_insert(result, item); - end - end - end + local result = modulemanager.get_items(key, self.host) or {}; return result; end