// ajoute les messages reçu à leur conversation respective
for (var numConv = 0; numConv < data["conversations"].length; numConv++)
{
- //PLOP if (data["conversations"][numConv]["messages"].length == 0) continue
+ // ya pas de nouveaux message -> on passe à la prochaine conversation
+ if (data["conversations"][numConv]["messages"].length == 0) continue
thisMessages.ajouterMessages(data["conversations"][numConv], numConv)
conversations/4\r
]).
--compile(export_all).
-
-include("euphorik_bd.hrl").
-include_lib("stdlib/include/qlc.hrl").
% @spec conversation([integer()], integer(), integer(), integer()) -> Conversation_detailee()
conversation(R, N, D, P) ->
{C, X} = conversation([], [R], []),
- Decalage = N*(P-1)+1,
+ Decalage = N * (P - 1) + 1,
{
reverse(C),
if Decalage > length(C) ->
conversation(Messages, [M | Reste], X) ->
Est_deja_traite = any(fun(E) -> E =:= M end, Messages),
if Est_deja_traite ->
- conversation(Messages, Reste, X);
- true ->
- Enfants = enfants(M),
- Parents = parents(M),
- % un message est dit externe si un de ses parent ne fait pas partie de la conversation ou si un de ses parents fait partie de X
- Est_message_externe = Parents -- Messages =/= [] orelse intersection(Parents, X) =/= [],
- conversation([M | Messages], Reste ++ Enfants, if Est_message_externe -> [M | X]; true -> X end)
+ conversation(Messages, Reste, X);
+ true ->
+ Enfants = enfants(M),
+ Parents = parents(M),
+ % un message est dit externe si un de ses parent ne fait pas partie de la conversation ou si un de ses parents fait partie de X
+ Est_message_externe = Parents -- Messages =/= [] orelse intersection(Parents, X) =/= [],
+ conversation([M | Messages], lists:merge(Reste, Enfants), if Est_message_externe -> [M | X]; true -> X end)
end;
conversation(Messages, [], X) ->
{Messages, X}.