Mercurial > prosody-modules
comparison mod_http_muc_log/mod_http_muc_log.lua @ 4963:479d618c9e6d
mod_http_muc_log: Show XEP-0444 reactions
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sun, 26 Jun 2022 21:23:42 +0200 |
parents | 13070c6a7ce8 |
children | 8c7b7db69f5b |
comparison
equal
deleted
inserted
replaced
4962:5a3031613dbc | 4963:479d618c9e6d |
---|---|
366 -- Ignore unresolved edit. | 366 -- Ignore unresolved edit. |
367 edit = nil; | 367 edit = nil; |
368 end | 368 end |
369 end | 369 end |
370 | 370 |
371 local reactions = item:get_child("reactions", "urn:xmpp:reactions:0"); | |
372 if reactions then | |
373 -- COMPAT Movim uses an @to attribute instead of the correct @id | |
374 local target_id = reactions.attr.id or reactions.attr.to; | |
375 for n = i - 1, 1, -1 do | |
376 if not logs[n] then | |
377 break -- Probably reached logs[0] | |
378 elseif logs[n].key == target_id then | |
379 local react_map = logs[n].reactions; -- { string : integer } | |
380 if not react_map then | |
381 react_map = {}; | |
382 logs[n].reactions = react_map; | |
383 end | |
384 for reaction_tag in reactions:childtags("reaction") do | |
385 -- FIXME This doesn't replace previous reactions by the same user | |
386 -- on the same message. | |
387 local reaction_text = reaction_tag:get_text() or "�"; | |
388 react_map[reaction_text] = (react_map[reaction_text] or 0) + 1; | |
389 end | |
390 break | |
391 end | |
392 end | |
393 end | |
394 | |
371 if body or verb or oob then | 395 if body or verb or oob then |
372 local line = { | 396 local line = { |
373 id = item.attr.id, | 397 id = item.attr.id, |
374 key = key; | 398 key = key; |
375 datetime = datetime.datetime(when); | 399 datetime = datetime.datetime(when); |