Mercurial > prosody-modules
comparison mod_pastebin/mod_pastebin.lua @ 3035:60ca0d03f3e3
mod_pastebin: Support the new MUC API in Prosody trunk
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Wed, 23 May 2018 00:34:46 +0200 |
parents | 6e9096b66704 |
children | be9e213d089b |
comparison
equal
deleted
inserted
replaced
3034:6e9096b66704 | 3035:60ca0d03f3e3 |
---|---|
4 local uuid_new = require "util.uuid".generate; | 4 local uuid_new = require "util.uuid".generate; |
5 local os_time = os.time; | 5 local os_time = os.time; |
6 local t_remove = table.remove; | 6 local t_remove = table.remove; |
7 local add_task = require "util.timer".add_task; | 7 local add_task = require "util.timer".add_task; |
8 local jid_bare = require "util.jid".bare; | 8 local jid_bare = require "util.jid".bare; |
9 local muc_rooms; | 9 |
10 local function get_room_from_jid() end; | |
10 local is_component = module:get_host_type() == "component"; | 11 local is_component = module:get_host_type() == "component"; |
11 if is_component then | 12 if is_component then |
12 muc_rooms = module:depends "muc".rooms; | 13 local mod_muc = module:depends "muc"; |
14 local muc_rooms = rawget(mod_muc, "rooms"); | |
15 get_room_from_jid = rawget(mod_muc, "get_room_from_jid") or | |
16 function (jid) | |
17 return muc_rooms[jid]; | |
18 end | |
13 end | 19 end |
14 | 20 |
15 local utf8_pattern = "[\194-\244][\128-\191]*$"; | 21 local utf8_pattern = "[\194-\244][\128-\191]*$"; |
16 local function drop_invalid_utf8(seq) | 22 local function drop_invalid_utf8(seq) |
17 local start = seq:byte(); | 23 local start = seq:byte(); |
94 function check_message(data) | 100 function check_message(data) |
95 local stanza = data.stanza; | 101 local stanza = data.stanza; |
96 | 102 |
97 -- Only check for MUC presence when loaded on a component. | 103 -- Only check for MUC presence when loaded on a component. |
98 if is_component then | 104 if is_component then |
99 local room = muc_rooms[jid_bare(stanza.attr.to)]; | 105 local room = get_room_from_jid(jid_bare(stanza.attr.to)); |
100 if not room then return; end | 106 if not room then return; end |
101 | 107 |
102 local nick = room._jid_nick[stanza.attr.from]; | 108 local nick = room._jid_nick[stanza.attr.from]; |
103 if not nick then return; end | 109 if not nick then return; end |
104 end | 110 end |