X-Git-Url: http://git.euphorik.ch/?p=euphorik.git;a=blobdiff_plain;f=modules%2Ferl%2Feuphorik_bd.erl;h=3f746891257eaefcfbb235507d9d7cda8ce133eb;hp=a6099fefecc3bb9a31515e5f91cae31a9c9404fc;hb=d5325d38a2655d2368aa576d6390cb766ce6cc06;hpb=886e51257b3d610ee0e4f7576d720495914ae9ec diff --git a/modules/erl/euphorik_bd.erl b/modules/erl/euphorik_bd.erl index a6099fe..3f74689 100755 --- a/modules/erl/euphorik_bd.erl +++ b/modules/erl/euphorik_bd.erl @@ -19,7 +19,8 @@ update_date_derniere_connexion/1, update_ip/2, update_pseudo_user/2, - users/0, + print_users/0, + print_users/1, user_by_cookie/1, user_by_id/1, user_by_login/1, @@ -240,12 +241,36 @@ update_pseudo_user(UserId, Pseudo) -> end ). - -% Renvoie tous les users. -users() -> + +% Affiche N user trié par leur date de dernière connexion. +% Attention : pas d'index sur ce champs (la date) +print_users(N) -> resultat_transaction(mnesia:transaction(fun() -> - e(q([E || E <- mnesia:table(user)])) - end)). + C = cursor(q([E || E <- qlc:keysort(9, mnesia:table(user), [{order, descending}])])), + Users = qlc:next_answers(C, N), + lists:foreach( + fun(U) -> + #user{id = Id, pseudo = Pseudo, login = Login, ek_master = Ek_master, date_derniere_connexion = Date} = U, + {{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, + if Ek_master -> "*"; true -> "" end ++ Pseudo, + "(" ++ Login ++ ")", + Jour, Mois, Annee, Heure, Min + ] + ) + end, + Users + ), + qlc:delete_cursor(C) + end)). + + +% Affiche tous les users. +print_users() -> + print_users(all_remaining). % Est-ce qu'un utilisateur existe en fonction de son cookie ? @@ -586,7 +611,7 @@ can_register(IP) -> )). -% Renvoie tous les trolls. +% Renvoie tous les trolls trolls() -> resultat_transaction(mnesia:transaction( fun() ->