-refreshMessage(Action) ->\r
- simple_xml_to_string(
- case {
- xmerl_xpath:string("nombreMessage", Action), % le nombre de message qu'affiche le client
- xmerl_xpath:string("page", Action) % la page désiré, la première (les derniers messages) étant la 1
- } of
- {
- [#xmlElement{content = [#xmlText{value = Nb_message_str}]}],
- [#xmlElement{content = [#xmlText{value = Page_str}]}]
- } ->
- Nb_message = list_to_integer(Nb_message_str),
- Page = list_to_integer(Page_str),
- Dernier_id = case xmerl_xpath:string("dernierMessageId", Action) of % l'id du dernier message que connait le client
- [#xmlElement{content = [#xmlText{value = D}]}] -> erlang:list_to_integer(D, 36);
- _ -> 0
- end,
- User = case xmerl_xpath:string("cookie", Action) of
- [#xmlElement{content = [#xmlText{value = Cookie}]}] ->
- case euphorik_minichat:get_user_by_cookie(Cookie) of
- {ok, U} -> U;
- _ -> inconnu
- end;
- _ -> inconnu
- end,\r
- % accrochez-vous ca va siouxer ;)\r
- Mess = lists:map(\r
- fun(Mess) ->\r
- Est_proprietaire = User =/= inconnu andalso User#user.id =:= Mess#minichat.auteur_id,\r
- A_repondu_a_message = User =/= inconnu andalso euphorik_minichat:a_repondu_a_message(User#user.id, Mess#minichat.id),\r
- Est_une_reponse_a_user = User =/= inconnu andalso euphorik_minichat:est_une_reponse_a_user(User#user.id, Mess#minichat.id),
- User_mess = if Mess#minichat.auteur_id =:= 0 -> inconnu; true ->
- {ok, U2} = euphorik_minichat:get_user_by_id(Mess#minichat.auteur_id),
- U2
- end, \r
- {message, [{id, erlang:integer_to_list(Mess#minichat.id, 36)}],\r
- [\r
- {date, [], [format_date(Mess#minichat.date)]},
- {systeme, [], [atom_to_list(Mess#minichat.auteur_id =:= 0)]},\r
- {proprietaire, [], [atom_to_list(Est_proprietaire)]},\r
- {repondu, [], [atom_to_list(A_repondu_a_message)]},\r
- {reponse, [], [atom_to_list(Est_une_reponse_a_user)]},\r
- {pseudo, [], [Mess#minichat.pseudo]},
- {login, [], [if User_mess =:= inconnu -> Mess#minichat.pseudo; true -> User_mess#user.login end]},\r
- {contenu, [], [Mess#minichat.contenu]},\r
- {repondA, [], xml_repond_a(Mess#minichat.id)}\r
- ]\r
- }\r
- end,\r
- get_dernieres_messages(Dernier_id, Nb_message, Page)\r
- ),
+wait_event(
+ [
+ {cookie, Cookie},
+ {message_count, Message_count} | Reste
+ ]
+) ->
+ % Last message id est facultatif
+ Last_message_id = case lists:keysearch(last_message_id, 1, Reste) of
+ {Id, _} -> Id;
+ _ -> 0
+ end,
+ {Main_page, _} = lists:keysearch(main_page, 1, Reste),
+ {{array, Conversations_json}, _} = lists:keysearch(conversations, 1, Reste),
+ User = case euphorik_minichat:user_by_cookie(Cookie) of\r
+ {ok U} -> U;\r
+ _ -> inconnu\r
+ end,\r
+ {stuct, [\r
+ {reply, "new_message"},\r
+ {conversations, {array,\r
+ TODO ...\r
+ } \r
+ ]}
+ \r
+ % accrochez-vous ca va siouxer ;)