Software / code / prosody-modules
Comparison
mod_vcard_muc/mod_vcard_muc.lua @ 3077:f16b021e8a61
mod_vcard_muc: Get room from rooms table when get_room_from_jid API is not supported
Closes #1152
| author | Michel Le Bihan <michel@lebihan.pl> |
|---|---|
| date | Wed, 30 May 2018 19:14:01 +0200 |
| parent | 3046:d0db28768980 |
| child | 3655:d7b589dec591 |
comparison
equal
deleted
inserted
replaced
| 3076:091b042cada0 | 3077:f16b021e8a61 |
|---|---|
| 11 local jid_split = require "util.jid".split; | 11 local jid_split = require "util.jid".split; |
| 12 local base64 = require"util.encodings".base64; | 12 local base64 = require"util.encodings".base64; |
| 13 local sha1 = require"util.hashes".sha1; | 13 local sha1 = require"util.hashes".sha1; |
| 14 | 14 |
| 15 local mod_muc = module:depends"muc"; | 15 local mod_muc = module:depends"muc"; |
| 16 local get_room_from_jid = mod_muc.get_room_from_jid; | |
| 17 | 16 |
| 18 local vcards = module:open_store(); | 17 local vcards = module:open_store(); |
| 19 | 18 |
| 20 module:add_feature("vcard-temp"); | 19 module:add_feature("vcard-temp"); |
| 20 | |
| 21 local get_room_from_jid = rawget(mod_muc, "get_room_from_jid") or | |
| 22 function (jid) | |
| 23 local rooms = rawget(mod_muc, "rooms"); | |
| 24 return rooms[jid]; | |
| 25 end | |
| 21 | 26 |
| 22 local function broadcast_presence(room_jid, to) | 27 local function broadcast_presence(room_jid, to) |
| 23 local room = get_room_from_jid(room_jid); | 28 local room = get_room_from_jid(room_jid); |
| 24 local room_node = jid_split(room_jid); | 29 local room_node = jid_split(room_jid); |
| 25 local vcard = st.deserialize(vcards:get(room_node)); | 30 local vcard = st.deserialize(vcards:get(room_node)); |