messages/2,\r
messages/3,
message_by_id/1,
- message_by_id_sans_transaction/1,
messages_by_ids/1,
message_existe/1,
reponses/0,
% Affiche N user trié par leur date de dernière connexion.
-print_users(N) ->
+% Opt est une liste d'option d'affichage :
+% * ekmaster : n'affiche que les admins
+print_users(N, Opt) ->
+ AfficheQueLesEkMaster = lists:any(fun(O) -> O =:= ekmaster end, Opt),
resultat_transaction(mnesia:transaction(fun() ->
C = cursor(
qlc:keysort(
#user.date_derniere_connexion,
- q([E || E <- mnesia:table(user)]),
+ if AfficheQueLesEkMaster ->
+ q([E || E <- mnesia:table(user), E#user.ek_master =:= true]);
+ true ->
+ q([E || E <- mnesia:table(user)])
+ end,
[{order, descending}]
),
[{tmpdir, ?KEY_SORT_TEMP_DIR}]
end)).
+% Affiche tous les users.
+print_users(Opt) ->
+ print_users(all_remaining, Opt).
+
% Affiche tous les users.
print_users() ->
- print_users(all_remaining).
-
+ print_users(all_remaining, []).
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
]
);
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.
% Renvoie une liste de message (voir #minichat de euphorik_bd.hrl) à partir d'une liste d'id (Ids).
+% TODO : optimisations ? serait-ce du O(n) ?
+% Bon de toutes façons on s'en fout c'est pas utilisé :)
messages_by_ids(Ids) ->
resultat_transaction(mnesia:transaction(
fun() ->
- % TODO : optimisations ? serait-ce du O(n) ?
e(qlc:keysort(
#minichat.id,
q([E || E <- mnesia:table(minichat), lists:any(fun(Id) -> Id =:= E#minichat.id end, Ids)]),