From ba4387c6afaaa2964c28292e7fbd1c35b3404ce5 Mon Sep 17 00:00:00 2001 From: Greg Burri Date: Mon, 28 Jul 2008 13:12:22 +0000 Subject: [PATCH] MOD cleanage de code --- README | 2 +- doc/architecture_serveur.svg | 135 +++++++++++++++++++++++------ modules/erl/euphorik_bd_admin.erl | 1 + modules/erl/euphorik_common.erl | 1 + modules/erl/euphorik_protocole.erl | 13 ++- modules/erl/euphorik_requests.erl | 37 ++++---- 6 files changed, 137 insertions(+), 52 deletions(-) diff --git a/README b/README index 7a1fe75..d598ee5 100644 --- a/README +++ b/README @@ -1 +1 @@ -Tout est ici : http://dev.euphorik.ch/wiki/euk/Accueil \ No newline at end of file +Voir : http://dev.euphorik.ch/wiki/euk/Accueil \ No newline at end of file diff --git a/doc/architecture_serveur.svg b/doc/architecture_serveur.svg index 002f28d..ccc0c42 100644 --- a/doc/architecture_serveur.svg +++ b/doc/architecture_serveur.svg @@ -59,8 +59,8 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="1.4" - inkscape:cx="334.11639" - inkscape:cy="851.68479" + inkscape:cx="306.37446" + inkscape:cy="563.19133" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="false" @@ -83,20 +83,38 @@ inkscape:label="Calque 1" inkscape:groupmode="layer" id="layer1"> + + Dépendances inter-modules + x="-665.67365" + y="42.102493">Dépendances inter-modules + + transform="matrix(0.621787,0,0,0.621787,269.65243,535.38587)"> + transform="matrix(0.621787,0,0,0.621787,433.94302,362.34898)"> + transform="matrix(0.621787,0,0,0.621787,341.16912,495.40653)"> + transform="matrix(0.621787,0,0,0.621787,304.22491,333.41637)"> + transform="matrix(0.621787,0,0,0.621787,24.99111,426.07831)"> + transform="matrix(0.621787,0,0,0.621787,66.564864,336.02386)"> + transform="matrix(0.621787,0,0,0.621787,69.22966,246.36617)"> + transform="matrix(0.621787,0,0,0.621787,196.84181,217.05335)"> + client + + + Yaws + Mnesia + + + JSON/HTTP diff --git a/modules/erl/euphorik_bd_admin.erl b/modules/erl/euphorik_bd_admin.erl index 843d830..7412337 100644 --- a/modules/erl/euphorik_bd_admin.erl +++ b/modules/erl/euphorik_bd_admin.erl @@ -23,6 +23,7 @@ % - Copie de la BD à partir d'un autre noeud % % @author G.Burri + -module(euphorik_bd_admin). -export([ diff --git a/modules/erl/euphorik_common.erl b/modules/erl/euphorik_common.erl index 5e3ef09..e91eff6 100644 --- a/modules/erl/euphorik_common.erl +++ b/modules/erl/euphorik_common.erl @@ -18,6 +18,7 @@ % % Module avec plein de bordel utile à l'intérieur % @author G.Burri + -module(euphorik_common). -export([ diff --git a/modules/erl/euphorik_protocole.erl b/modules/erl/euphorik_protocole.erl index 1b0a49b..a321287 100755 --- a/modules/erl/euphorik_protocole.erl +++ b/modules/erl/euphorik_protocole.erl @@ -25,7 +25,6 @@ -export([ register/2, login/2, - logout/1, profile/1, wait_event/1, put_message/1, @@ -92,6 +91,8 @@ login([{cookie, Cookie}], IP) -> erreur("Authentification impossible par cookie") end. + +% L'utilisateur donné se logge avec l'ip donnée. loginUser(User, IP) -> euphorik_bd:update_ip(User#user.id, IP), euphorik_bd:update_date_derniere_connexion(User#user.id), @@ -105,11 +106,6 @@ generer_cookie() -> erlang:integer_to_list(random:uniform(math:pow(10, 32)), 36). -% Un utilisateur se délogge. -logout(_) -> - do_nothing. - - % Modification du profile. profile( [ @@ -122,7 +118,6 @@ profile( case profile_from_json(Profile_json) of {erreur, E} -> E; Profile -> - % TODO : pas très beau, mieux vaut construire un #user case euphorik_bd:set_profile(Cookie, Login, Password, Profile) of ok -> json_reponse_ok(); @@ -196,7 +191,7 @@ profile_from_json( end. -% Renvoie les messages appropriés. +% Attend un événement pour la page "Chat" % last_message id et cookie sont facultatifs wait_event([{page, "chat"} | Data]) -> % traitement des inputs @@ -227,6 +222,7 @@ wait_event([{page, "chat"} | Data]) -> mnesia:unsubscribe({table, troll, detailed}), R end; +% Attend un événement pour la page "Admin" wait_event([{page, "admin"}, {last_troll, Last_troll}]) -> case wait_event_page_admin(Last_troll) of banned_ips_refresh -> @@ -279,6 +275,7 @@ wait_event(_) -> erreur("Page inconnue"). +% Attend un événement pour la page "Chat" et renvoie soit un troll soit les messages manquants au client. wait_event_page_chat(User, Racines_conversations, Message_count, Last_message_id, Main_page, Troll_id) -> % est-ce que le troll est à jour ? case euphorik_bd:current_troll() of diff --git a/modules/erl/euphorik_requests.erl b/modules/erl/euphorik_requests.erl index 8c46b7b..1cd460a 100755 --- a/modules/erl/euphorik_requests.erl +++ b/modules/erl/euphorik_requests.erl @@ -16,14 +16,14 @@ % You should have received a copy of the GNU General Public License % along with Euphorik. If not, see . % -% Ce module est fait pour répondre à des requêtes 'AJAX'. -% Il est définit comme 'appmods' pour l'url "request" dans yaws. +% Ce module est fait pour répondre à des requêtes JSON via 'AJAX'. +% Il est définit comme 'appmods' pour l'url "request" dans Yaws. % Par exemple http://www.euphorik.ch/request abouti sur la fonction out/1 de ce module. % @author G.Burri -module(euphorik_requests). --export([out/1, traiter_donnees/2]). +-export([out/1]). -include_lib("yaws/include/yaws_api.hrl"). -include("../include/euphorik_defines.hrl"). @@ -38,12 +38,13 @@ out(A) -> % keepalive -> true, evite que des firewalls coupe la connexion TCP sans prévenir inet:setopts(A#arg.clisock, [{active, true}, {keepalive, true}]), {value, {_, Contenu}} = lists:keysearch("action", 1, yaws_api:parse_post(A)), - Ret = traiter_donnees(Contenu, IP), + Ret = traiter_message(Contenu, IP), {content, "application/json", Ret}. -% Décode les données JSON. -traiter_donnees(Contenu, IP) -> +% Décode le message JSON. +traiter_message(Contenu, IP) -> + % extrait l'entête obligatoire des messages JSON {ok, {struct, [{header, {struct, [{action, Action}, {version, Version_client}]}} | Reste]}} = json:decode_string(Contenu), json:encode( if Version_client =:= ?VERSION_PROTOCOLE -> @@ -56,40 +57,40 @@ traiter_donnees(Contenu, IP) -> ). -% authentification d'un client +% Authentification d'un client. traiter_action("authentification", JSON, IP) -> euphorik_protocole:login(JSON, IP); -% un client s'enregistre : (pseudo + password) ou de manière anonyme +% Un client s'enregistre : (pseudo + password) ou de manière anonyme. traiter_action("register", JSON, IP) -> euphorik_protocole:register(JSON, IP); -% modification du profile +% Modification du profile. traiter_action("set_profile", JSON, _) -> euphorik_protocole:profile(JSON); -% un utilisateur attend un événement (par exemple l'arrivé d'un nouveau message) +% Un utilisateur attend un événement (par exemple l'arrivée d'un nouveau message). traiter_action("wait_event", JSON, _) -> euphorik_protocole:wait_event(JSON); -% un utilisateur envoie un message +% Un utilisateur envoie un message. traiter_action("put_message", JSON, _) -> euphorik_protocole:put_message(JSON); -% un ekMaster bannie un utilisateur (ip) +% Un ekMaster bannie un utilisateur (ip). traiter_action("ban", JSON, _) -> euphorik_protocole:ban(JSON); -% un ekMaster slap un utilisateur +% Un ekMaster slap un utilisateur. traiter_action("slap", JSON, _) -> euphorik_protocole:slap(JSON); -% un ekMaster envoie un nouveau troll +% Un ekMaster envoie un nouveau troll. traiter_action("put_troll", JSON, _) -> euphorik_protocole:put_troll(JSON); -% un ekMaster modifie un troll +% Un ekMaster modifie un troll. traiter_action("mod_troll", JSON, _) -> euphorik_protocole:mod_troll(JSON); -% un ekMaster supprime un troll +% Un ekMaster supprime un troll. traiter_action("del_troll", JSON, _) -> euphorik_protocole:del_troll(JSON); -% un ekMaster demande la liste des ips bannies +% Un ekMaster demande la liste des ips bannies. traiter_action("list_banned_ips", JSON, _) -> euphorik_protocole:list_banned_ips(JSON); -% un ekMaster débannie une ip +% Un ekMaster débannie une ip. traiter_action("unban", JSON, _) -> euphorik_protocole:unban_ip(JSON). \ No newline at end of file -- 2.45.2