ADD l'affichage des users (euphorik_bd:print_users/0) affiche les ip maintenant
authorGreg Burri <greg.burri@gmail.com>
Tue, 3 Jun 2008 21:01:20 +0000 (21:01 +0000)
committerGreg Burri <greg.burri@gmail.com>
Tue, 3 Jun 2008 21:01:20 +0000 (21:01 +0000)
ADD module euphorik_common pour mettre tout le bordel annexe

doc/TODO.txt
modules/Makefile
modules/erl/euphorik_bd.erl
modules/erl/euphorik_minichat_conversation.erl
modules/erl/euphorik_protocole.erl

index 354faae..542c40a 100755 (executable)
@@ -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\r
    * Afficher l'ip dans le print_users().\r
-* Limiter la mise en évidence de la conversation lorsque le curseur se trouve sur les pseudos\r
-* Mettre dans la FAQ la signification des couleurs associées aux messages.\r
+* 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\r
+* Mettre dans la FAQ la signification des couleurs associées aux messages.\r
 * Ne pas pouvoir poster avec "<nick>"\r
 * 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)\r
 === v1.1 ===\r
index 4f808db..731cd71 100755 (executable)
@@ -16,6 +16,7 @@ $(rep_ebin)/euphorik_minichat_conversation.beam \
 $(rep_ebin)/euphorik_requests.beam \\r
 $(rep_ebin)/euphorik_protocole.beam \
 $(rep_ebin)/euphorik_daemon.beam \
+$(rep_ebin)/euphorik_common.beam \
 $(rep_ebin)/euphorik_test.beam
 \r
 # Module pour la gestion des données persistante la BD\r
@@ -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\r
        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)\r
index 46cefed..2b18d5b 100755 (executable)
@@ -57,7 +57,6 @@
    messages/2,\r
    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.
index 60f92e4..6f2f2be 100755 (executable)
@@ -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];
                   _ ->
index d99e4cc..ae79d84 100755 (executable)
@@ -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"