Files
vnctalk-prosody/patches/mod_muc_unique.lua
T

38 lines
1.1 KiB
Lua

-- XEP-0307: Unique Room Names for Multi-User Chat
local st = require "util.stanza";
local unique_name = require "util.id".medium;
module:add_feature "http://jabber.org/protocol/muc#unique"
module:log("info", "uniqe activated");
local function handle_iq(event)
local origin, stanza = event.origin, event.stanza;
local uname = unique_name():lower();
local origto = stanza.attr.to or nil;
-- module:log("info", "orig to: %s", origto);
-- module:log("info", "uname: %s", uname);
origin.send(st.reply(stanza)
:tag("unique", {xmlns = "http://jabber.org/protocol/muc#unique"})
:text(unique_name():lower())
);
end;
local function handle_iq_tobare(event)
local origin, stanza = event.origin, event.stanza;
local uname = unique_name():lower();
local origto = stanza.attr.to or nil;
-- module:log("info", "orig to: %s", origto);
-- module:log("info", "uname: %s", uname);
origin.send(st.error_reply(stanza, "cancel", "item-not-found"));
end;
module:hook("iq-get/bare/http://jabber.org/protocol/muc#unique:unique", handle_iq_tobare, 1);
module:hook("iq-get/host/http://jabber.org/protocol/muc#unique:unique", handle_iq, -1);