Mercurial > prosody-modules
comparison mod_http_muc_log/mod_http_muc_log.lua @ 4592:38f501dca618
mod_http_muc_log: Find edit relations using XEP-0308
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Tue, 15 Jun 2021 17:35:56 +0200 |
parents | 3145823992cb |
children | a2cf3b69a3d6 |
comparison
equal
deleted
inserted
replaced
4591:327c7cacd89f | 4592:38f501dca618 |
---|---|
328 end | 328 end |
329 | 329 |
330 local nick = select(3, jid_split(item.attr.from)); | 330 local nick = select(3, jid_split(item.attr.from)); |
331 local oob = use_oob and item:get_child("x", "jabber:x:oob"); | 331 local oob = use_oob and item:get_child("x", "jabber:x:oob"); |
332 | 332 |
333 local edit = item:find("{urn:xmpp:message-correct:0}replace/@id"); | |
334 if edit then | |
335 local found = false; | |
336 for n = i-1, 1, -1 do | |
337 if not logs[n] then | |
338 break; -- Probably reached logs[0] | |
339 elseif logs[n].id == edit and nick == logs[n].nick then | |
340 found = true; | |
341 logs[n].edited = key; | |
342 edit = logs[n].key; | |
343 break; | |
344 end | |
345 end | |
346 if not found then | |
347 -- Ignore unresolved edit. | |
348 edit = nil; | |
349 end | |
350 end | |
351 | |
333 if body or verb or oob then | 352 if body or verb or oob then |
334 local line = { | 353 local line = { |
354 id = item.attr.id, | |
335 key = key; | 355 key = key; |
336 datetime = datetime.datetime(when); | 356 datetime = datetime.datetime(when); |
337 time = datetime.time(when); | 357 time = datetime.time(when); |
338 verb = verb; | 358 verb = verb; |
339 body = body; | 359 body = body; |
340 lang = lang; | 360 lang = lang; |
341 nick = nick; | 361 nick = nick; |
342 st_name = item.name; | 362 st_name = item.name; |
343 st_type = item.attr.type; | 363 st_type = item.attr.type; |
364 edit = edit; | |
344 }; | 365 }; |
345 if oob then | 366 if oob then |
346 line.oob = { | 367 line.oob = { |
347 url = oob:get_child_text("url"); | 368 url = oob:get_child_text("url"); |
348 desc = oob:get_child_text("desc"); | 369 desc = oob:get_child_text("desc"); |