connect/0,
connect/1,
reset/0,
- update/0,
% users :
nouveau_user/2,
nouveau_user/3,
- set_profile/11,
+ set_profile/10,
update_date_derniere_connexion/1,
update_ip/2,
update_pseudo_user/2,
toggle_ek_master/1,
css_from_user_cookie/1,
- % messages :
+ % messages :e
nouveau_message/3,
nouveau_message_sys/1,
nouveau_message_sys/2,
messages_by_ids/1,
message_existe/1,
reponses/0,
- repond_a/1,
+ parents/1,
+ enfants/1,
est_une_reponse_a_user/2,
a_repondu_a_message/2,
possede_message/2,
elire_troll/0,
message_id_associe/1,
- % versions :
- update_version/1,
-
% utiles :
resultat_transaction/1\r
]).
end).
-% Met à jour la bd, compare ?VERSION_BD avec la version dans la table 'proprietes'
-% et exécute les patchs nécessaires.
-update() ->
- mnesia:transaction(
- fun() ->
- case mnesia:read({proprietes, version}) of
- [#proprietes{nom = Version}] ->
- update(Version);
- _ ->
- erreur
- end
- end
- ).
-
-
-% Mise à jour de la BD.
-% attention : il est nécessaire de se trouver dans une transaction.
-update(?VERSION_BD) -> fini;
-update(Version) ->
- patch(Version),
- update(Version + 1).
-
-
-% Applique une modification de la BD pour passer d'une version à la suivante.
-% 1 -> 2
-patch(1) ->
- ok.
-% 2 -> 3
-%patch(2) ->
-
-
% Ajoute un nouveau user et le renvoie
nouveau_user(Pseudo, Cookie) ->
F = fun() ->
% Mise à par Cookie les autres peuvent être undefined ce qui veut dire qu'ils ne seront pas modifié.
-set_profile(Cookie, Login, Password, Pseudo, Email, Css, Nick_format, View_times, View_tooltips, Page_principale, Conversations) ->
+set_profile(Cookie, Login, Password, Pseudo, Email, Css, Nick_format, View_times, View_tooltips, Conversations) ->
if Nick_format =:= nick; Nick_format =:= login; Nick_format =:= nick_login ->
resultat_transaction(mnesia:transaction(
fun() ->
nick_format = Nick_format,
view_times = View_times,
view_tooltips = View_tooltips,
- page_principale = if is_integer(Page_principale), Page_principale > 0 -> Page_principale; true -> User#user.page_principale end,
conversations = if is_list(Conversations) -> Conversations; true -> User#user.conversations end
},
mnesia:write(User_modifie),
% Renvoie les messages auquel M_id répond.
-repond_a(M_id) ->
+parents(M_id) ->
resultat_transaction(mnesia:transaction(
fun() ->
e(q(
- [M || E <- mnesia:table(reponse_minichat),
+ [M || R <- mnesia:table(reponse_minichat),
M <- mnesia:table(minichat),
- E#reponse_minichat.repondant =:= M_id,
- M#minichat.id =:= E#reponse_minichat.cible]), [{tmpdir, ?KEY_SORT_TEMP_DIR}])
+ R#reponse_minichat.repondant =:= M_id,
+ M#minichat.id =:= R#reponse_minichat.cible]), [{tmpdir, ?KEY_SORT_TEMP_DIR}])
+ end
+ )).
+
+
+% Renvoie les message qui repondent à M_id
+enfants(M_id) ->
+ resultat_transaction(mnesia:transaction(
+ fun() ->
+ e(q(
+ [M || R <- mnesia:table(reponse_minichat),
+ M <- mnesia:table(minichat),
+ R#reponse_minichat.cible =:= M_id,
+ M#minichat.id =:= R#reponse_minichat.repondant]), [{tmpdir, ?KEY_SORT_TEMP_DIR}])
end
)).
end
end
)).
-
-
-update_version(1) ->
- mnesia:transform_table(
- ip_table,
- fun() -> null end,
- record_info(fields, ip_table),
- ip_table
- ).
-
+
% Renvoie le résultat d'une transaction (en décomposant le tuple fournit)
resultat_transaction({_, T}) ->
trunc(delta_date_ms(D1, D2) / 1000 / 60).
-% Bizarre, cette fonction n'existe pas dans la stdlib.
-% Pas utilisé mais bon ca me fait de la peine de l'enlever.
-ceiling(X) ->
- T = trunc(X),
- case (X - T) of
- Neg when Neg < 0 -> T;
- Pos when Pos > 0 -> T + 1;
- _ -> T
- end.
-
-
% Renvoie un nouvel id pour une table donnée
nouvel_id(Table) ->
mnesia:dirty_update_counter(counter, Table, 1).\r