summaryrefslogtreecommitdiff
path: root/src/mod_mam.erl
diff options
context:
space:
mode:
authorPaweł Chmielowski <pchmielowski@process-one.net>2018-10-10 18:02:45 +0200
committerPaweł Chmielowski <pchmielowski@process-one.net>2018-10-10 18:12:35 +0200
commit914fae3d3edbe603aade2c21d9ec2e622a9d8631 (patch)
tree0d48330f45de060f401330c2c9694ecfb2730310 /src/mod_mam.erl
parentFix 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.erl17
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) ->