mirror of
https://github.com/processone/ejabberd.git
synced 2024-12-24 17:29:28 +01:00
Support for MAM Flipped Pages (#3398)
This commit is contained in:
parent
73dbd34f95
commit
f1e04639bb
@ -57,7 +57,7 @@
|
||||
{stringprep, ".*", {git, "https://github.com/processone/stringprep", {tag, "1.0.22"}}},
|
||||
{if_var_true, stun,
|
||||
{stun, ".*", {git, "https://github.com/processone/stun", {tag, "1.0.37"}}}},
|
||||
{xmpp, ".*", {git, "https://github.com/processone/xmpp", "0fece8d96b5812c43be179c4f232cac7cb98d81c"}},
|
||||
{xmpp, ".*", {git, "https://github.com/processone/xmpp", "362394889f5b2653177be1368d555277f2c49719"}},
|
||||
{yconf, ".*", {git, "https://github.com/processone/yconf", {tag, "1.0.7"}}}
|
||||
]}.
|
||||
|
||||
|
@ -687,11 +687,11 @@ process_iq(LServer, #iq{from = #jid{luser = LUser}, lang = Lang,
|
||||
#mam_query{rsm = #rsm_set{index = I}} when is_integer(I) ->
|
||||
Txt = ?T("Unsupported <index/> element"),
|
||||
xmpp:make_error(IQ, xmpp:err_feature_not_implemented(Txt, Lang));
|
||||
#mam_query{rsm = RSM, xmlns = NS} ->
|
||||
#mam_query{rsm = RSM, flippage = FlipPage, xmlns = NS} ->
|
||||
case parse_query(SubEl, Lang) of
|
||||
{ok, Query} ->
|
||||
NewRSM = limit_max(RSM, NS),
|
||||
select_and_send(LServer, Query, NewRSM, IQ, MsgType);
|
||||
select_and_send(LServer, Query, NewRSM, FlipPage, IQ, MsgType);
|
||||
{error, Err} ->
|
||||
xmpp:make_error(IQ, Err)
|
||||
end
|
||||
@ -1017,7 +1017,7 @@ maybe_activate_mam(LUser, LServer) ->
|
||||
ok
|
||||
end.
|
||||
|
||||
select_and_send(LServer, Query, RSM, #iq{from = From, to = To} = IQ, MsgType) ->
|
||||
select_and_send(LServer, Query, RSM, FlipPage, #iq{from = From, to = To} = IQ, MsgType) ->
|
||||
Ret = case MsgType of
|
||||
chat ->
|
||||
select(LServer, From, From, Query, RSM, MsgType);
|
||||
@ -1027,7 +1027,11 @@ select_and_send(LServer, Query, RSM, #iq{from = From, to = To} = IQ, MsgType) ->
|
||||
case Ret of
|
||||
{Msgs, IsComplete, Count} ->
|
||||
SortedMsgs = lists:keysort(2, Msgs),
|
||||
send(SortedMsgs, Count, IsComplete, IQ);
|
||||
SortedMsgs2 = case FlipPage of
|
||||
true -> lists:reverse(SortedMsgs);
|
||||
false -> SortedMsgs
|
||||
end,
|
||||
send(SortedMsgs2, Count, IsComplete, IQ);
|
||||
{error, _} ->
|
||||
Txt = ?T("Database failure"),
|
||||
Err = xmpp:err_internal_server_error(Txt, IQ#iq.lang),
|
||||
|
Loading…
Reference in New Issue
Block a user