projects
/
euphorik.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
FIX linefeed
[euphorik.git]
/
modules
/
erl
/
euphorik_bd.erl
diff --git
a/modules/erl/euphorik_bd.erl
b/modules/erl/euphorik_bd.erl
index
6eaea54
..
b72d7a8
100755
(executable)
--- a/
modules/erl/euphorik_bd.erl
+++ b/
modules/erl/euphorik_bd.erl
@@
-57,7
+57,6
@@
messages/2,
\r
messages/3,
message_by_id/1,
messages/2,
\r
messages/3,
message_by_id/1,
- message_by_id_sans_transaction/1,
messages_by_ids/1,
message_existe/1,
reponses/0,
messages_by_ids/1,
message_existe/1,
reponses/0,
@@
-304,12
+303,19
@@
update_pseudo_user(UserId, Pseudo) ->
% Affiche N user trié par leur date de dernière connexion.
% 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,
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}]
[{order, descending}]
),
[{tmpdir, ?KEY_SORT_TEMP_DIR}]
@@
-325,20
+331,25
@@
print_users(N) ->
end)).
end)).
+% Affiche tous les users.
+print_users(Opt) ->
+ print_users(all_remaining, Opt).
+
% Affiche tous les users.
print_users() ->
% Affiche tous les users.
print_users() ->
- print_users(all_remaining).
-
+ print_users(all_remaining, []).
print_user(User) when is_record(User, user) ->
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(
{{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,
[
Id,
if Ek_master -> "*"; true -> "" end ++ Pseudo,
- "(" ++ Login ++ ")",
+ Login,
+ euphorik_common:serialize_ip(IP),
Jour, Mois, Annee, Heure, Min
]
);
Jour, Mois, Annee, Heure, Min
]
);
@@
-542,15
+553,13
@@
messages(Id, N, P) ->
message_by_id(Id) ->
resultat_transaction(mnesia:transaction(
fun() ->
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
)).
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 le contenu d'un message donnée, à utiliser à l'intérieur d'une transaction.
@@
-563,10
+572,11
@@
contenu_message(E) ->
% Renvoie une liste de message (voir #minichat de euphorik_bd.hrl) à partir d'une liste d'id (Ids).
% 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() ->
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)]),
e(qlc:keysort(
#minichat.id,
q([E || E <- mnesia:table(minichat), lists:any(fun(Id) -> Id =:= E#minichat.id end, Ids)]),