Mercurial > prosody-hg
comparison plugins/muc/muc.lib.lua @ 2503:bb6b0bd7f2cf
MUC: Converted some local functions into methods.
| author | Waqas Hussain <waqas20@gmail.com> |
|---|---|
| date | Tue, 26 Jan 2010 02:29:32 +0500 |
| parents | 89be536aae25 |
| children | 8b12ee9a5027 |
comparison
equal
deleted
inserted
replaced
| 2502:ec3eaf54bbd4 | 2503:bb6b0bd7f2cf |
|---|---|
| 181 if self._data['subject'] then | 181 if self._data['subject'] then |
| 182 self:_route_stanza(st.message({type='groupchat', from=self.jid, to=to}):tag("subject"):text(self._data['subject'])); | 182 self:_route_stanza(st.message({type='groupchat', from=self.jid, to=to}):tag("subject"):text(self._data['subject'])); |
| 183 end | 183 end |
| 184 end | 184 end |
| 185 | 185 |
| 186 local function room_get_disco_info(self, stanza) | 186 function room_mt:get_disco_info(stanza) |
| 187 return st.reply(stanza):query("http://jabber.org/protocol/disco#info") | 187 return st.reply(stanza):query("http://jabber.org/protocol/disco#info") |
| 188 :tag("identity", {category="conference", type="text"}):up() | 188 :tag("identity", {category="conference", type="text"}):up() |
| 189 :tag("feature", {var="http://jabber.org/protocol/muc"}); | 189 :tag("feature", {var="http://jabber.org/protocol/muc"}); |
| 190 end | 190 end |
| 191 local function room_get_disco_items(self, stanza) | 191 function room_mt:get_disco_items(stanza) |
| 192 local reply = st.reply(stanza):query("http://jabber.org/protocol/disco#items"); | 192 local reply = st.reply(stanza):query("http://jabber.org/protocol/disco#items"); |
| 193 for room_jid in pairs(self._occupants) do | 193 for room_jid in pairs(self._occupants) do |
| 194 reply:tag("item", {jid = room_jid, name = room_jid:match("/(.*)")}):up(); | 194 reply:tag("item", {jid = room_jid, name = room_jid:match("/(.*)")}):up(); |
| 195 end | 195 end |
| 196 return reply; | 196 return reply; |
| 500 function room_mt:handle_to_room(origin, stanza) -- presence changes and groupchat messages, along with disco/etc | 500 function room_mt:handle_to_room(origin, stanza) -- presence changes and groupchat messages, along with disco/etc |
| 501 local type = stanza.attr.type; | 501 local type = stanza.attr.type; |
| 502 local xmlns = stanza.tags[1] and stanza.tags[1].attr.xmlns; | 502 local xmlns = stanza.tags[1] and stanza.tags[1].attr.xmlns; |
| 503 if stanza.name == "iq" then | 503 if stanza.name == "iq" then |
| 504 if xmlns == "http://jabber.org/protocol/disco#info" and type == "get" then | 504 if xmlns == "http://jabber.org/protocol/disco#info" and type == "get" then |
| 505 origin.send(room_get_disco_info(self, stanza)); | 505 origin.send(self:get_disco_info(stanza)); |
| 506 elseif xmlns == "http://jabber.org/protocol/disco#items" and type == "get" then | 506 elseif xmlns == "http://jabber.org/protocol/disco#items" and type == "get" then |
| 507 origin.send(room_get_disco_items(self, stanza)); | 507 origin.send(self:get_disco_items(stanza)); |
| 508 elseif xmlns == "http://jabber.org/protocol/muc#admin" then | 508 elseif xmlns == "http://jabber.org/protocol/muc#admin" then |
| 509 local actor = stanza.attr.from; | 509 local actor = stanza.attr.from; |
| 510 local affiliation = self:get_affiliation(actor); | 510 local affiliation = self:get_affiliation(actor); |
| 511 local current_nick = self._jid_nick[actor]; | 511 local current_nick = self._jid_nick[actor]; |
| 512 local role = current_nick and self._occupants[current_nick].role or self:get_default_role(affiliation); | 512 local role = current_nick and self._occupants[current_nick].role or self:get_default_role(affiliation); |
