-module(euphorik_protocole).
-export([
- generation_captcha/1,
- nouveau_user_captcha/1,
nouveau_user_login/1,
login/1,
logout/1,
-include("../include/euphorik_bd.hrl").\r
-include("../include/euphorik_defines.hrl").\r
-
-% Génère un nouveau captchat dans ?DOSSIER_CAPTCHA\r
-% Obsolète
-%~ generation_captcha(_) ->
- %~ {Mot_crypt, Nom_fichier} = captcha:create(5, ?DOSSIER_CAPTCHA),
- %~ simple_xml_to_string(xml_reponse_generation_captcha(?DOSSIER_CAPTCHA_RELATIF "/" ++ Nom_fichier, Mot_crypt)).
-
-\r
-% Un nouvel utilisateur doit être créé.\r
-% Obolète : le captcha n'existe plus
-% Action est un xmlElement().
-%~ nouveau_user_captcha(Action) ->
- %~ simple_xml_to_string(\r
- %~ case {xmerl_xpath:string("captchaCrypt", Action), xmerl_xpath:string("captchaInput", Action)} of\r
- %~ {[#xmlElement{content = [#xmlText{value = C1}]}], [#xmlElement{content = [#xmlText{value = C2}]}]} ->\r
- %~ C2_crypt = common:crypt(C2),\r
- %~ if C1 =:= C2_crypt ->\r
- %~ Cookie = generer_cookie(),\r
- %~ User = euphorik_minichat:nouveau_user("Paul", Cookie),\r
- %~ xml_reponse_login_ok(User);\r
- %~ true ->
- %~ xml_reponse_login_pas_ok("Captcha incorrect")\r
- %~ end;
- %~ _ ->
- %~ xml_reponse_login_pas_ok("XML malformé")\r
- %~ end
- %~ ).
-
% Une utilisateur s'enregistre avec un tuple {Login, Password}.\r
% @spec nouveau_user_login(xmerl:xmlElement()) -> string()
Pseudo = case xmerl_xpath:string("pseudo", Action) of [#xmlElement{content = [#xmlText{value = P2}]}] -> P2; _ -> Login end,
Email = case xmerl_xpath:string("email", Action) of [#xmlElement{content = [#xmlText{value = E}]}] -> E; _ -> undefined end,
Css = case xmerl_xpath:string("css", Action) of [#xmlElement{content = [#xmlText{value = C}]}] -> C; _ -> undefined end,
- case euphorik_minichat:set_profile(Cookie, Login, Password, Pseudo, Email, Css) of
+ Page_principale = case xmerl_xpath:string("pagePrincipale", Action) of [#xmlElement{content = [#xmlText{value = P3}]}] -> list_to_integer(P3); _ -> undefined end,
+ Conversations = lists:map(
+ fun(Conv) ->
+ [#xmlElement{content = [#xmlText{value = Id_racine_str}]}] = xmerl_xpath:string("racine", Conv),
+ [#xmlElement{content = [#xmlText{value = Page_conv_str}]}] = xmerl_xpath:string("page", Conv),
+ {erlang:list_to_integer(Id_racine_str, 36), list_to_integer(Page_conv_str)}
+ end,
+ xmerl_xpath:string("conversation", Action)
+ ),
+ case euphorik_minichat:set_profile(Cookie, Login, Password, Pseudo, Email, Css, Page_principale, Conversations) of
ok ->
xml_reponse_profile_ok();\r
login_deja_pris ->\r
% Renvoie les messages appropriés.
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}]}]
- } ->
+ case xmerl_xpath:string("nombreMessage", Action) of % le nombre de message qu'affiche le client
+ [#xmlElement{content = [#xmlText{value = Nb_message_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
_ -> inconnu
end,
% extraction des conversations en [{id, page}, ..]
- Conversations = lists:map(
- fun(Conv) ->
- [#xmlElement{content = [#xmlText{value = Id_racine_str}]}] = xmerl_xpath:string("racine", Conv),
- [#xmlElement{content = [#xmlText{value = Page_conv_str}]}] = xmerl_xpath:string("page", Conv),
- {erlang:list_to_integer(Id_racine_str, 36), erlang:list_to_integer(Page_conv_str)}
- end,
- xmerl_xpath:string("conversation", Action)
- ),\r
+ % Obsolète : obtenu depuis la table 'user'
+ %~ Conversations = lists:map(
+ %~ fun(Conv) ->
+ %~ [#xmlElement{content = [#xmlText{value = Id_racine_str}]}] = xmerl_xpath:string("racine", Conv),
+ %~ [#xmlElement{content = [#xmlText{value = Page_conv_str}]}] = xmerl_xpath:string("page", Conv),
+ %~ {erlang:list_to_integer(Id_racine_str, 36), erlang:list_to_integer(Page_conv_str)}
+ %~ end,
+ %~ xmerl_xpath:string("conversation", Action)
+ %~ ),\r
% accrochez-vous ca va siouxer ;)
[{reponse, [{name, "refreshMessages"}],\r
lists:map(\r
)
]
}\r
- end,
- euphorik_minichat_conversation:conversations(Conversations, Nb_message, Dernier_id, Page)\r
+ end,
+ euphorik_minichat_conversation:conversations(User#user.conversations, Nb_message, Dernier_id, User#user.page_principale)\r
)
}];
_ ->
{pseudo, [User#user.pseudo]},
{login, [User#user.login]},
{email, [User#user.email]},
- {css, [User#user.css]}
- ]
+ {css, [User#user.css]},
+ {pagePrincipale, [integer_to_list(User#user.page_principale)]}
+ ] ++
+ lists:map(
+ fun(C) ->
+ {conversation,
+ [
+ {racine, [erlang:integer_to_list(element(1, C), 36)]},
+ {page, [integer_to_list(element(2, C))]}
+ ]
+ }
+ end,
+ User#user.conversations
+ )
}].
]\r
}\r
].
-\r
-\r
-% Obsolète
-%~ xml_reponse_generation_captcha(Chemin, Captcha) ->
- %~ [
- %~ {reponse, [{name, "generationCaptcha"}],
- %~ [
- %~ {chemin, [], [Chemin]},
- %~ {captchaCrypt, [], [Captcha]}
- %~ ]
- %~ }
- %~ ].
+
%%%%%%%%% </réponses XML> %%%%%%%%%