Software / code / prosody
Comparison
plugins/muc/muc.lib.lua @ 7368:4e24aff1e4df
MUC: Flatten format of serialized rooms
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Mon, 18 Apr 2016 19:29:23 +0200 |
| parent | 7367:2aef5e8b69e9 |
| child | 7369:c5cae59831d7 |
comparison
equal
deleted
inserted
replaced
| 7367:2aef5e8b69e9 | 7368:4e24aff1e4df |
|---|---|
| 1243 _affiliations = {}; | 1243 _affiliations = {}; |
| 1244 }, room_mt); | 1244 }, room_mt); |
| 1245 end | 1245 end |
| 1246 | 1246 |
| 1247 function room_mt:freeze() | 1247 function room_mt:freeze() |
| 1248 return { | 1248 local frozen = { |
| 1249 jid = self.jid; | 1249 _jid = self.jid; |
| 1250 _data = self._data; | 1250 _data = self._data; |
| 1251 _affiliations = self._affiliations; | 1251 }; |
| 1252 } | 1252 for user, affiliation in pairs(self._affiliations) do |
| 1253 frozen[user] = affiliation; | |
| 1254 end | |
| 1255 return frozen; | |
| 1253 end | 1256 end |
| 1254 | 1257 |
| 1255 function _M.restore_room(frozen) | 1258 function _M.restore_room(frozen) |
| 1256 local room_jid = frozen.jid; | 1259 -- COMPAT |
| 1260 if frozen.jid and frozen._affiliations then | |
| 1261 local room = _M.new_room(frozen.jid, frozen._data); | |
| 1262 room._affiliations = frozen._affiliations; | |
| 1263 return room; | |
| 1264 end | |
| 1265 | |
| 1266 local room_jid = frozen._jid; | |
| 1257 local room = _M.new_room(room_jid, frozen._data); | 1267 local room = _M.new_room(room_jid, frozen._data); |
| 1258 room._affiliations = frozen._affiliations; | 1268 |
| 1269 for jid, data in pairs(frozen) do | |
| 1270 local node, host = jid_split(jid); | |
| 1271 if node or host:sub(1,1) ~= "_" then | |
| 1272 room._affiliations[jid] = data; | |
| 1273 end | |
| 1274 end | |
| 1259 return room; | 1275 return room; |
| 1260 end | 1276 end |
| 1261 | 1277 |
| 1262 _M.room_mt = room_mt; | 1278 _M.room_mt = room_mt; |
| 1263 | 1279 |