mod_mam: Simplify 'message_is_archived' callback
This commit is contained in:
parent
98419c6662
commit
75f150f7ae
|
@ -462,15 +462,10 @@ disco_sm_features(Acc, _From, _To, _Node, _Lang) ->
|
||||||
-spec message_is_archived(boolean(), c2s_state(), message()) -> boolean().
|
-spec message_is_archived(boolean(), c2s_state(), message()) -> boolean().
|
||||||
message_is_archived(true, _C2SState, _Pkt) ->
|
message_is_archived(true, _C2SState, _Pkt) ->
|
||||||
true;
|
true;
|
||||||
message_is_archived(false, #{jid := JID}, Pkt) ->
|
message_is_archived(false, #{lserver := LServer}, Pkt) ->
|
||||||
#jid{luser = LUser, lserver = LServer} = JID,
|
|
||||||
Peer = xmpp:get_from(Pkt),
|
|
||||||
case gen_mod:get_module_opt(LServer, ?MODULE, assume_mam_usage, false) of
|
case gen_mod:get_module_opt(LServer, ?MODULE, assume_mam_usage, false) of
|
||||||
true ->
|
true ->
|
||||||
should_archive(strip_my_stanza_id(Pkt, LServer), LServer)
|
is_archived(Pkt, LServer);
|
||||||
andalso should_archive_peer(LUser, LServer,
|
|
||||||
get_prefs(LUser, LServer),
|
|
||||||
Peer);
|
|
||||||
false ->
|
false ->
|
||||||
false
|
false
|
||||||
end.
|
end.
|
||||||
|
@ -586,7 +581,7 @@ should_archive(#message{meta = #{from_offline := true}}, _LServer) ->
|
||||||
false;
|
false;
|
||||||
should_archive(#message{body = Body, subject = Subject,
|
should_archive(#message{body = Body, subject = Subject,
|
||||||
type = Type} = Pkt, LServer) ->
|
type = Type} = Pkt, LServer) ->
|
||||||
case is_resent(Pkt, LServer) of
|
case is_archived(Pkt, LServer) of
|
||||||
true ->
|
true ->
|
||||||
false;
|
false;
|
||||||
false ->
|
false ->
|
||||||
|
@ -737,8 +732,8 @@ has_no_store_hint(Message) ->
|
||||||
xmpp:has_subtag(Message, #hint{type = 'no-permanent-store'}) orelse
|
xmpp:has_subtag(Message, #hint{type = 'no-permanent-store'}) orelse
|
||||||
xmpp:has_subtag(Message, #hint{type = 'no-permanent-storage'}).
|
xmpp:has_subtag(Message, #hint{type = 'no-permanent-storage'}).
|
||||||
|
|
||||||
-spec is_resent(message(), binary()) -> boolean().
|
-spec is_archived(message(), binary()) -> boolean().
|
||||||
is_resent(Pkt, LServer) ->
|
is_archived(Pkt, LServer) ->
|
||||||
case xmpp:get_subtag(Pkt, #stanza_id{by = #jid{}}) of
|
case xmpp:get_subtag(Pkt, #stanza_id{by = #jid{}}) of
|
||||||
#stanza_id{by = #jid{lserver = LServer}} ->
|
#stanza_id{by = #jid{lserver = LServer}} ->
|
||||||
true;
|
true;
|
||||||
|
|
Loading…
Reference in New Issue