Software /
code /
prosody
Comparison
core/moduleapi.lua @ 12972:ead41e25ebc0
core: Prefix module imports with prosody namespace
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 17 Mar 2023 16:23:07 +0100 |
parent | 12921:d238633a9d67 |
child | 12994:5625da6ae6b6 |
comparison
equal
deleted
inserted
replaced
12971:7214baed9e9d | 12972:ead41e25ebc0 |
---|---|
4 -- | 4 -- |
5 -- This project is MIT/X11 licensed. Please see the | 5 -- This project is MIT/X11 licensed. Please see the |
6 -- COPYING file in the source package for more information. | 6 -- COPYING file in the source package for more information. |
7 -- | 7 -- |
8 | 8 |
9 local array = require "util.array"; | 9 local array = require "prosody.util.array"; |
10 local set = require "util.set"; | 10 local set = require "prosody.util.set"; |
11 local it = require "util.iterators"; | 11 local it = require "prosody.util.iterators"; |
12 local logger = require "util.logger"; | 12 local logger = require "prosody.util.logger"; |
13 local timer = require "util.timer"; | 13 local timer = require "prosody.util.timer"; |
14 local resolve_relative_path = require"util.paths".resolve_relative_path; | 14 local resolve_relative_path = require"prosody.util.paths".resolve_relative_path; |
15 local st = require "util.stanza"; | 15 local st = require "prosody.util.stanza"; |
16 local cache = require "util.cache"; | 16 local cache = require "prosody.util.cache"; |
17 local errors = require "util.error"; | 17 local errors = require "prosody.util.error"; |
18 local promise = require "util.promise"; | 18 local promise = require "prosody.util.promise"; |
19 local time_now = require "util.time".now; | 19 local time_now = require "prosody.util.time".now; |
20 local format = require "util.format".format; | 20 local format = require "prosody.util.format".format; |
21 local jid_node = require "util.jid".node; | 21 local jid_node = require "prosody.util.jid".node; |
22 local jid_split = require "util.jid".split; | 22 local jid_split = require "prosody.util.jid".split; |
23 local jid_resource = require "util.jid".resource; | 23 local jid_resource = require "prosody.util.jid".resource; |
24 | 24 |
25 local t_insert, t_remove, t_concat = table.insert, table.remove, table.concat; | 25 local t_insert, t_remove, t_concat = table.insert, table.remove, table.concat; |
26 local error, setmetatable, type = error, setmetatable, type; | 26 local error, setmetatable, type = error, setmetatable, type; |
27 local ipairs, pairs, select = ipairs, pairs, select; | 27 local ipairs, pairs, select = ipairs, pairs, select; |
28 local tonumber, tostring = tonumber, tostring; | 28 local tonumber, tostring = tonumber, tostring; |
127 function api:wrap_global(event, handler) | 127 function api:wrap_global(event, handler) |
128 return self:hook_object_event(prosody.events, event, handler); | 128 return self:hook_object_event(prosody.events, event, handler); |
129 end | 129 end |
130 | 130 |
131 function api:require(lib) | 131 function api:require(lib) |
132 local modulemanager = require"core.modulemanager"; | 132 local modulemanager = require"prosody.core.modulemanager"; |
133 local f, n = modulemanager.loader:load_code_ext(self.name, lib, "lib.lua", self.environment); | 133 local f, n = modulemanager.loader:load_code_ext(self.name, lib, "lib.lua", self.environment); |
134 if not f then error("Failed to load plugin library '"..lib.."', error: "..n); end -- FIXME better error message | 134 if not f then error("Failed to load plugin library '"..lib.."', error: "..n); end -- FIXME better error message |
135 return f(); | 135 return f(); |
136 end | 136 end |
137 | 137 |
138 function api:depends(name) | 138 function api:depends(name) |
139 local modulemanager = require"core.modulemanager"; | 139 local modulemanager = require"prosody.core.modulemanager"; |
140 if self:get_option_inherited_set("modules_disabled", {}):contains(name) then | 140 if self:get_option_inherited_set("modules_disabled", {}):contains(name) then |
141 error("Dependency on disabled module mod_"..name); | 141 error("Dependency on disabled module mod_"..name); |
142 end | 142 end |
143 if not self.dependencies then | 143 if not self.dependencies then |
144 self.dependencies = {}; | 144 self.dependencies = {}; |
203 self.shared_data[path] = shared; | 203 self.shared_data[path] = shared; |
204 return shared; | 204 return shared; |
205 end | 205 end |
206 | 206 |
207 function api:get_option(name, default_value) | 207 function api:get_option(name, default_value) |
208 local config = require "core.configmanager"; | 208 local config = require "prosody.core.configmanager"; |
209 local value = config.get(self.host, name); | 209 local value = config.get(self.host, name); |
210 if value == nil then | 210 if value == nil then |
211 value = default_value; | 211 value = default_value; |
212 end | 212 end |
213 return value; | 213 return value; |
331 end | 331 end |
332 end | 332 end |
333 end | 333 end |
334 | 334 |
335 function api:get_host_items(key) | 335 function api:get_host_items(key) |
336 local modulemanager = require"core.modulemanager"; | 336 local modulemanager = require"prosody.core.modulemanager"; |
337 local result = modulemanager.get_items(key, self.host) or {}; | 337 local result = modulemanager.get_items(key, self.host) or {}; |
338 return result; | 338 return result; |
339 end | 339 end |
340 | 340 |
341 function api:handle_items(item_type, added_cb, removed_cb, existing) | 341 function api:handle_items(item_type, added_cb, removed_cb, existing) |
541 return io.open(path, mode); | 541 return io.open(path, mode); |
542 end | 542 end |
543 | 543 |
544 function api:open_store(name, store_type) | 544 function api:open_store(name, store_type) |
545 if self.host == "*" then return nil, "global-storage-not-supported"; end | 545 if self.host == "*" then return nil, "global-storage-not-supported"; end |
546 return require"core.storagemanager".open(self.host, name or self.name, store_type); | 546 return require"prosody.core.storagemanager".open(self.host, name or self.name, store_type); |
547 end | 547 end |
548 | 548 |
549 function api:measure(name, stat_type, conf) | 549 function api:measure(name, stat_type, conf) |
550 local measure = require "core.statsmanager".measure; | 550 local measure = require "prosody.core.statsmanager".measure; |
551 local fixed_label_key, fixed_label_value | 551 local fixed_label_key, fixed_label_value |
552 if self.host ~= "*" then | 552 if self.host ~= "*" then |
553 fixed_label_key = "host" | 553 fixed_label_key = "host" |
554 fixed_label_value = self.host | 554 fixed_label_value = self.host |
555 end | 555 end |
560 self:add_item("measure", { name = name, type = stat_type, conf = conf }); | 560 self:add_item("measure", { name = name, type = stat_type, conf = conf }); |
561 return measure(stat_type, "mod_"..self.name.."/"..name, conf, fixed_label_key, fixed_label_value) | 561 return measure(stat_type, "mod_"..self.name.."/"..name, conf, fixed_label_key, fixed_label_value) |
562 end | 562 end |
563 | 563 |
564 function api:metric(type_, name, unit, description, label_keys, conf) | 564 function api:metric(type_, name, unit, description, label_keys, conf) |
565 local metric = require "core.statsmanager".metric; | 565 local metric = require "prosody.core.statsmanager".metric; |
566 local is_scoped = self.host ~= "*" | 566 local is_scoped = self.host ~= "*" |
567 if is_scoped then | 567 if is_scoped then |
568 -- prepend `host` label to label keys if this is not a global module | 568 -- prepend `host` label to label keys if this is not a global module |
569 local orig_labels = label_keys | 569 local orig_labels = label_keys |
570 label_keys = array { "host" } | 570 label_keys = array { "host" } |