diff options
author | Paweł Chmielowski <pchmielowski@process-one.net> | 2018-10-10 18:02:45 +0200 |
---|---|---|
committer | Paweł Chmielowski <pchmielowski@process-one.net> | 2018-10-10 18:12:35 +0200 |
commit | 914fae3d3edbe603aade2c21d9ec2e622a9d8631 (patch) | |
tree | 0d48330f45de060f401330c2c9694ecfb2730310 /src/mod_mam.erl | |
parent | Fix version in mix.exs (diff) |
Change logic for archiving mucsub messages
This change should apply usual logic for message wrapped in mucsub except
check for groupchat message, so messages without bodies for example
should be rejected
Diffstat (limited to 'src/mod_mam.erl')
-rw-r--r-- | src/mod_mam.erl | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/mod_mam.erl b/src/mod_mam.erl index 4581a6da..ca2cbeb0 100644 --- a/src/mod_mam.erl +++ b/src/mod_mam.erl @@ -648,9 +648,20 @@ should_archive(#message{body = Body, subject = Subject, none when Type == headline -> false; none -> - xmpp:get_text(Body) /= <<>> orelse - xmpp:get_text(Subject) /= <<>> orelse - xmpp:has_subtag(Pkt, #ps_event{}) + case xmpp:get_text(Body) /= <<>> orelse + xmpp:get_text(Subject) /= <<>> of + true -> + true; + _ -> + case mod_muc_room:unwrap_mucsub_message(Pkt) of + #message{type = groupchat} = Msg -> + should_archive(Msg#message{type = chat}, LServer); + #message{} = Msg -> + should_archive(Msg, LServer); + _ -> + false + end + end end end; should_archive(_, _LServer) -> |