mod_mam: Add 'store_mam_message' hook
The new 'store_mam_message' hook is invoked whenever a MAM message is stored.
This commit is contained in:
parent
8821cf8b27
commit
20a510d877
|
@ -718,8 +718,14 @@ store_msg(C2SState, Pkt, LUser, LServer, Peer, Dir) ->
|
||||||
case should_archive_peer(C2SState, Prefs, Peer) of
|
case should_archive_peer(C2SState, Prefs, Peer) of
|
||||||
true ->
|
true ->
|
||||||
US = {LUser, LServer},
|
US = {LUser, LServer},
|
||||||
Mod = gen_mod:db_mod(LServer, ?MODULE),
|
case ejabberd_hooks:run_fold(store_mam_message, LServer, Pkt,
|
||||||
Mod:store(Pkt, LServer, US, chat, Peer, <<"">>, Dir);
|
[LUser, LServer, Peer, chat, Dir]) of
|
||||||
|
drop ->
|
||||||
|
pass;
|
||||||
|
NewPkt ->
|
||||||
|
Mod = gen_mod:db_mod(LServer, ?MODULE),
|
||||||
|
Mod:store(NewPkt, LServer, US, chat, Peer, <<"">>, Dir)
|
||||||
|
end;
|
||||||
false ->
|
false ->
|
||||||
pass
|
pass
|
||||||
end.
|
end.
|
||||||
|
@ -727,10 +733,16 @@ store_msg(C2SState, Pkt, LUser, LServer, Peer, Dir) ->
|
||||||
store_muc(MUCState, Pkt, RoomJID, Peer, Nick) ->
|
store_muc(MUCState, Pkt, RoomJID, Peer, Nick) ->
|
||||||
case should_archive_muc(Pkt) of
|
case should_archive_muc(Pkt) of
|
||||||
true ->
|
true ->
|
||||||
LServer = MUCState#state.server_host,
|
|
||||||
{U, S, _} = jid:tolower(RoomJID),
|
{U, S, _} = jid:tolower(RoomJID),
|
||||||
Mod = gen_mod:db_mod(LServer, ?MODULE),
|
LServer = MUCState#state.server_host,
|
||||||
Mod:store(Pkt, LServer, {U, S}, groupchat, Peer, Nick, recv);
|
case ejabberd_hooks:run_fold(store_mam_message, LServer, Pkt,
|
||||||
|
[U, S, Peer, groupchat, recv]) of
|
||||||
|
drop ->
|
||||||
|
pass;
|
||||||
|
NewPkt ->
|
||||||
|
Mod = gen_mod:db_mod(LServer, ?MODULE),
|
||||||
|
Mod:store(NewPkt, LServer, {U, S}, groupchat, Peer, Nick, recv)
|
||||||
|
end;
|
||||||
false ->
|
false ->
|
||||||
pass
|
pass
|
||||||
end.
|
end.
|
||||||
|
|
Loading…
Reference in New Issue