Software /
code /
verse
Comparison
plugins/groupchat.lua @ 435:cf31a5ef8a9b
verse.plugins.groupchat: Add support for MUC passwords https://xmpp.org/extensions/xep-0045.html#example-27
author | Seve Ferrer <seve@delape.net> |
---|---|
date | Fri, 02 Oct 2020 16:42:37 +0200 |
parent | 418:40b8cc364274 |
child | 490:6b2f31da9610 |
comparison
equal
deleted
inserted
replaced
426:9813b17ee096 | 435:cf31a5ef8a9b |
---|---|
36 local ret = room:event(stanza.name, event); | 36 local ret = room:event(stanza.name, event); |
37 return ret or (stanza.name == "message") or nil; | 37 return ret or (stanza.name == "message") or nil; |
38 end | 38 end |
39 end, 500); | 39 end, 500); |
40 | 40 |
41 function stream:join_room(jid, nick, opts) | 41 function stream:join_room(jid, nick, opts, password) |
42 if not nick then | 42 if not nick then |
43 return false, "no nickname supplied" | 43 return false, "no nickname supplied" |
44 end | 44 end |
45 opts = opts or {}; | 45 opts = opts or {}; |
46 local room = setmetatable(verse.eventable{ | 46 local room = setmetatable(verse.eventable{ |
102 room.subject = subject; | 102 room.subject = subject; |
103 return room:event("subject-changed", { from = old_subject, to = subject, by = event.sender, event = event }); | 103 return room:event("subject-changed", { from = old_subject, to = subject, by = event.sender, event = event }); |
104 end | 104 end |
105 end, 2000); | 105 end, 2000); |
106 local join_st = verse.presence():tag("x",{xmlns = xmlns_muc}):reset(); | 106 local join_st = verse.presence():tag("x",{xmlns = xmlns_muc}):reset(); |
107 if password then | |
108 join_st:get_child("x", xmlns_muc):tag("password"):text(password):reset(); | |
109 end | |
107 self:event("pre-groupchat/joining", join_st); | 110 self:event("pre-groupchat/joining", join_st); |
108 room:send(join_st) | 111 room:send(join_st) |
109 self:event("groupchat/joining", room); | 112 self:event("groupchat/joining", room); |
110 return room; | 113 return room; |
111 end | 114 end |