plugins/groupchat.lua

changeset 185
4f897d0e01c4
parent 184
8173e57522bf
child 186
bb34b8bc00ae
equal deleted inserted replaced
184:8173e57522bf 185:4f897d0e01c4
36 if not nick then 36 if not nick then
37 return false, "no nickname supplied" 37 return false, "no nickname supplied"
38 end 38 end
39 local room = setmetatable({ 39 local room = setmetatable({
40 stream = stream, jid = jid, nick = nick, 40 stream = stream, jid = jid, nick = nick,
41 subject = "", 41 subject = nil,
42 occupants = {}, 42 occupants = {},
43 events = events.new() 43 events = events.new()
44 }, room_mt); 44 }, room_mt);
45 self.rooms[jid] = room; 45 self.rooms[jid] = room;
46 local occupants = room.occupants; 46 local occupants = room.occupants;
78 end 78 end
79 end 79 end
80 end); 80 end);
81 room:hook("message", function(msg) 81 room:hook("message", function(msg)
82 local subject = msg.stanza:get_child("subject"); 82 local subject = msg.stanza:get_child("subject");
83 subject = subject and subject:get_text();
83 if subject then 84 if subject then
84 room.subject = subject and subject:get_text() or ""; 85 room.subject = #subject > 0 and subject or nil;
85 end 86 end
86 end); 87 end);
87 local join_st = st.presence({to = jid.."/"..nick}) 88 local join_st = st.presence({to = jid.."/"..nick})
88 :tag("x",{xmlns = xmlns_muc}):reset(); 89 :tag("x",{xmlns = xmlns_muc}):reset();
89 self:event("pre-groupchat/joining", join_st); 90 self:event("pre-groupchat/joining", join_st);

mercurial