ADD trolls, fin coté serveur et début coté client
[euphorik.git] / modules / erl / euphorik_minichat_conversation.erl
index a280e1f..d5f486f 100755 (executable)
@@ -17,7 +17,7 @@
 -include_lib("stdlib/include/qlc.hrl").
 
 -import(lists, [reverse/1, any/2, map/2, sublist/3, filter/2]).
--import(euphorik_minichat, [resultat_transaction/1]).
+-import(euphorik_bd, [resultat_transaction/1]).
 -import(qlc, [e/1, q/1, keysort/3]).
 -import(mnesia, [table/1, transaction/1]).
   
 % @spec conversations([{integer(), integer(), integer()}], integer(), integer(), integer()) -> [Conversation()]
 conversations(Racines, N, D, P) ->
    % écoute des nouveaux messages
-   case subscribe(minichat, 2) of
-      erreur = E ->
+   case mnesia:subscribe({table, minichat, simple}) of
+      {error, E} = E ->
          E;
       _ ->
          % demande des conversations
          Conversations = conversations_detailees(Racines, N, D, P),
-         %io:format("Conversations : ~p~n", [Conversations]),
          % si les conversations sont vides alors on attend un nouveau message
          Vide = not any(
             fun(C) ->
@@ -51,39 +50,38 @@ conversations(Racines, N, D, P) ->
          Conversations_mises_en_forme = mise_en_forme_conversations(
             if Vide ->
                attend_nouveau_message(),
-               %io:format("Racines = ~p, N = ~p, D = ~p, P = ~p~n", [Racines, N, D, P]),
-               %io:format("Conversations = ~p~n", [conversations_detailees(Racines, N, D, P)]),
                conversations_detailees(Racines, N, D, P);
             true ->
                Conversations
             end
          ),
-         %io:format("Conversations_mises_en_forme = ~p~n", [Conversations_mises_en_forme]),
-         unsubscribe(minichat),
+         mnesia:unsubscribe({table, minichat, simple}),
          Conversations_mises_en_forme
    end.
    
    
 % Ecoute les événements de modification d'une table.
 % @spec subscribe(atom(), integer()) -> ok | erreur
-subscribe(_Table, 0) ->
-   erreur;
-subscribe(Table, C) ->
-   case mnesia:subscribe({table, Table, simple}) of 
-       {error, {not_active_local, Table}} ->       
-         mnesia:add_table_copy(minichat, node(), ram_copies),
-         subscribe(Table, C - 1);
-      {error, _}->
-         erreur;
-      _ ->
-         ok
-   end.   
+% Obsolète
+%~ subscribe(_Table, 0) ->
+   %~ erreur;
+%~ subscribe(Table, C) ->
+   %~ case mnesia:subscribe({table, Table, simple}) of 
+       %~ {error, {not_active_local, Table}} ->
+         %~ mnesia:add_table_copy(minichat, node(), ram_copies),
+         %~ subscribe(Table, C - 1);
+      %~ {error, _}->
+         %~ erreur;
+      %~ _ ->
+         %~ ok
+   %~ end.   
    
    
 % Arrête d'écouter les modifications d'une table.
 % @spec unsubscribe(atom()) -> term()
-unsubscribe(Table) -> 
-   mnesia:unsubscribe({table, Table, simple}).
+% Obsolète
+%~ unsubscribe(Table) -> 
+   %~ mnesia:unsubscribe({table, Table, simple}).
  
  
 % Attend qu'un nouveau message arrive, function bloquante.
@@ -119,7 +117,7 @@ mise_en_forme_conversations([{Principale, Plus_principale} | Conversations]) ->
 mise_en_forme_conversation(Messages) ->
    lists:foldr(
       fun(Id, Acc) ->
-         case euphorik_minichat:message_by_id(Id) of
+         case euphorik_bd:message_by_id(Id) of
             {ok, Message} ->
                [{Message, parents(Id)} | Acc];
             _ ->