From 90a93ff3caa0639b4e0f96d0c485933ae80ede2f Mon Sep 17 00:00:00 2001 From: Greg Burri Date: Tue, 3 Jun 2008 21:01:20 +0000 Subject: [PATCH] ADD l'affichage des users (euphorik_bd:print_users/0) affiche les ip maintenant ADD module euphorik_common pour mettre tout le bordel annexe --- doc/TODO.txt | 4 ++-- modules/Makefile | 5 +++++ modules/erl/euphorik_bd.erl | 21 +++++++++---------- .../erl/euphorik_minichat_conversation.erl | 2 +- modules/erl/euphorik_protocole.erl | 15 ++----------- 5 files changed, 20 insertions(+), 27 deletions(-) diff --git a/doc/TODO.txt b/doc/TODO.txt index 354faae..542c40a 100755 --- a/doc/TODO.txt +++ b/doc/TODO.txt @@ -4,9 +4,9 @@ * Cleaner le code (erl, js, xhtml, css) et eventuellement profiler un peu (le refresh est lent sous opera) * Pouvoir afficher les utilisateurs (print_users(admin)) qui sont admin * Afficher l'ip dans le print_users(). -* Limiter la mise en évidence de la conversation lorsque le curseur se trouve sur les pseudos -* Mettre dans la FAQ la signification des couleurs associées aux messages. +* Limiter la mise en évidence de la conversation lorsque le curseur se trouve sur les pseudos * Enlever le petit carré mis en couleur et mettre le pseudo + date en couleur à la place +* Mettre dans la FAQ la signification des couleurs associées aux messages. * Ne pas pouvoir poster avec "" * Lorsque le curseur se trouve sur le nom d'une personne à qui l'on répond n'highliter que cette conversation !! (très bonne idée) === v1.1 === diff --git a/modules/Makefile b/modules/Makefile index 4f808db..731cd71 100755 --- a/modules/Makefile +++ b/modules/Makefile @@ -16,6 +16,7 @@ $(rep_ebin)/euphorik_minichat_conversation.beam \ $(rep_ebin)/euphorik_requests.beam \ $(rep_ebin)/euphorik_protocole.beam \ $(rep_ebin)/euphorik_daemon.beam \ +$(rep_ebin)/euphorik_common.beam \ $(rep_ebin)/euphorik_test.beam # Module pour la gestion des données persistante la BD @@ -42,6 +43,10 @@ $(rep_ebin)/euphorik_protocole.beam: $(rep_erl)/euphorik_protocole.erl $(rep_inc $(rep_ebin)/euphorik_daemon.beam: $(rep_erl)/euphorik_daemon.erl $(rep_include)/euphorik_defines.hrl erlc $(erlc_params) +# Module avec plein de bordel dedant +$(rep_ebin)/euphorik_common.beam: $(rep_erl)/euphorik_common.erl + erlc $(erlc_params) + # Module dédié au tests $(rep_ebin)/euphorik_test.beam: $(rep_erl)/euphorik_test.erl $(rep_erl)/euphorik_bd.erl $(rep_include)/euphorik_bd.hrl erlc $(erlc_params) diff --git a/modules/erl/euphorik_bd.erl b/modules/erl/euphorik_bd.erl index 46cefed..2b18d5b 100755 --- a/modules/erl/euphorik_bd.erl +++ b/modules/erl/euphorik_bd.erl @@ -57,7 +57,6 @@ messages/2, messages/3, message_by_id/1, - message_by_id_sans_transaction/1, messages_by_ids/1, message_existe/1, reponses/0, @@ -331,14 +330,16 @@ print_users() -> print_user(User) when is_record(User, user) -> - #user{id = Id, pseudo = Pseudo, login = Login, ek_master = Ek_master, date_derniere_connexion = Date} = User, + #user{id = Id, pseudo = Pseudo, login = Login, ek_master = Ek_master, date_derniere_connexion = Date, last_ip = IP} = User, {{Annee, Mois, Jour}, {Heure, Min, _}} = calendar:now_to_local_time(Date), io:format( - "~4w : ~10.10..s~10.10..s ~2w.~2.2.0w.~w - ~2wh~2.2.0w~n", + % id pseudo (login) IP Jour Mois Année Heure Minute + "~4w : ~10.10..s(~10.10..s) ~s ~2w.~2.2.0w.~w - ~2wh~2.2.0w~n", [ Id, if Ek_master -> "*"; true -> "" end ++ Pseudo, - "(" ++ Login ++ ")", + Login, + euphorik_common:serialize_ip(IP), Jour, Mois, Annee, Heure, Min ] ); @@ -542,15 +543,13 @@ messages(Id, N, P) -> message_by_id(Id) -> resultat_transaction(mnesia:transaction( fun() -> - message_by_id_sans_transaction(Id) + case mnesia:read({minichat, Id}) of + [] -> erreur; + [M] -> + {ok, M#minichat{contenu = contenu_message(M)}} + end end )). -message_by_id_sans_transaction(Id) -> - case mnesia:read({minichat, Id}) of - [] -> erreur; - [M] -> - {ok, M#minichat{contenu = contenu_message(M)}} - end. % Renvoie le contenu d'un message donnée, à utiliser à l'intérieur d'une transaction. diff --git a/modules/erl/euphorik_minichat_conversation.erl b/modules/erl/euphorik_minichat_conversation.erl index 60f92e4..6f2f2be 100755 --- a/modules/erl/euphorik_minichat_conversation.erl +++ b/modules/erl/euphorik_minichat_conversation.erl @@ -84,7 +84,7 @@ mise_en_forme_conversation(Messages) -> fun() -> lists:foldr( fun(Id, Acc) -> - case euphorik_bd:message_by_id_sans_transaction(Id) of + case euphorik_bd:message_by_id(Id) of {ok, Message} -> [{Message, parents(Id)} | Acc]; _ -> diff --git a/modules/erl/euphorik_protocole.erl b/modules/erl/euphorik_protocole.erl index d99e4cc..ae79d84 100755 --- a/modules/erl/euphorik_protocole.erl +++ b/modules/erl/euphorik_protocole.erl @@ -555,7 +555,7 @@ unban_ip( ) -> case euphorik_bd:user_by_cookie(Cookie) of {ok, #user{ek_master = true}} -> - euphorik_bd:deban(unserialize_ip(IP)), + euphorik_bd:deban(euphorik_common:unserialize_ip(IP)), json_reponse_ok(); _ -> erreur("Seul les ekMaster peuvent connaitre la liste des ips bannies") @@ -577,7 +577,7 @@ list_banned_ips( fun({IP, T, Users}) -> {struct, [ - {ip, serialize_ip(IP)}, + {ip, euphorik_common:serialize_ip(IP)}, {remaining_time, format_minutes(T)}, {users, {array, lists:map( fun({Pseudo, Login}) -> @@ -611,17 +611,6 @@ erreur(Message) -> ] }. - -serialize_ip(IP) -> - lists:flatten(io_lib:format("~w.~w.~w.~w", tuple_to_list(IP))). - - -unserialize_ip(IP) -> - case io_lib:fread("~d.~d.~d.~d", IP) of - {ok, [A, B, C, D], []} -> {A, B, C, D}; - _ -> erreur - end. - % Formatage de minutes. % par exemple : "1min", "45min", "1h23min", "1jour 2h34min" -- 2.45.2