Software / code / prosody
Comparison
plugins/muc/muc.lib.lua @ 5611:e043d4d65423
mod_muc: Replace getText() with get_child_text(), 1 insertion, 12 deletions!
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Tue, 21 May 2013 09:48:59 +0100 |
| parent | 5601:f55ab5fa939f |
| child | 5612:5404832d6f7a |
comparison
equal
deleted
inserted
replaced
| 5610:f73d5fb4ea13 | 5611:e043d4d65423 |
|---|---|
| 70 | 70 |
| 71 local function is_kickable_error(stanza) | 71 local function is_kickable_error(stanza) |
| 72 local cond = get_error_condition(stanza); | 72 local cond = get_error_condition(stanza); |
| 73 return kickable_error_conditions[cond] and cond; | 73 return kickable_error_conditions[cond] and cond; |
| 74 end | 74 end |
| 75 local function getUsingPath(stanza, path, getText) | |
| 76 local tag = stanza; | |
| 77 for _, name in ipairs(path) do | |
| 78 if type(tag) ~= 'table' then return; end | |
| 79 tag = tag:child_with_name(name); | |
| 80 end | |
| 81 if tag and getText then tag = table.concat(tag); end | |
| 82 return tag; | |
| 83 end | |
| 84 local function getTag(stanza, path) return getUsingPath(stanza, path); end | |
| 85 local function getText(stanza, path) return getUsingPath(stanza, path, true); end | |
| 86 ----------- | 75 ----------- |
| 87 | 76 |
| 88 local room_mt = {}; | 77 local room_mt = {}; |
| 89 room_mt.__index = room_mt; | 78 room_mt.__index = room_mt; |
| 90 | 79 |
| 865 elseif occupant.role == "visitor" then | 854 elseif occupant.role == "visitor" then |
| 866 origin.send(st.error_reply(stanza, "auth", "forbidden")); | 855 origin.send(st.error_reply(stanza, "auth", "forbidden")); |
| 867 else | 856 else |
| 868 local from = stanza.attr.from; | 857 local from = stanza.attr.from; |
| 869 stanza.attr.from = current_nick; | 858 stanza.attr.from = current_nick; |
| 870 local subject = getText(stanza, {"subject"}); | 859 local subject = stanza:get_child_text("subject"); |
| 871 if subject then | 860 if subject then |
| 872 if occupant.role == "moderator" or | 861 if occupant.role == "moderator" or |
| 873 ( self._data.changesubject and occupant.role == "participant" ) then -- and participant | 862 ( self._data.changesubject and occupant.role == "participant" ) then -- and participant |
| 874 self:set_subject(current_nick, subject); -- TODO use broadcast_message_stanza | 863 self:set_subject(current_nick, subject); -- TODO use broadcast_message_stanza |
| 875 else | 864 else |