% coding: utf-8 % Copyright 2008 Grégory Burri % % This file is part of Euphorik. % % Euphorik is free software: you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation, either version 3 of the License, or % (at your option) any later version. % % Euphorik is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with Euphorik. If not, see . % % @author GBurri % Version de la BD -define(VERSION_BD, 3). -define(TABLES, [counter, proprietes, minichat, reponse_minichat, user, ip_table, troll]). % Pour générer des id -record(counter, { key, value }). % Mémorse toutes les propriétés, entre autre la version des données -record(proprietes, { nom, valeur }). % Contient tous les textes que peut envoyer le serveur vers client. -record(texte, { id, fr }). % décrit un enregistrement d'un message -record(minichat, { id, % integer auteur_id, % -> #user.id date, % erlang:timestamp() pseudo, % chaine de caractère contenu, % chaine de caractère racine_id = undefined, % la racine, par défaut correspond à l'id du message status = normal % can be equal to normal, censored or deleted }). % type bag % 'repondant' repond à 'cible' -record(reponse_minichat, { repondant, % -> #minichat.id cible % -> #minichat.id }). -record(profile, % attention : pas une table ! { pseudo = [], % string() email = [], % string() css = [], % string() nick_format = nick, %atom(), peut valoir 'nick', 'login' ou 'nick_login' view_times = true, view_tooltips = true, ostentatious_master = light, % peut valoir invisible, light ou heavy. seulement pour ek_master chat_order = reverse, % peut valoir chrono ou reverse conversations = [] % [{integer(), bool}], la liste des messages correspondant au conversation {racine, reduite?} }). -record(user, { id, cookie, % string() login = [], % string() password = [], % string() (md5) profile = #profile{}, date_creation, % erlang:timestamp() date_derniere_connexion, % erlang:timestamp(), est mis à jour lors de n'importe quelle activitée (envoie de message par exemple) indice_flood = 0, % integer() est incrémenté lorsque l'utilisateur envoie trop rapidement des messages. ek_master = false, last_ip = undefined % integer(), undefined si inconnu }). % identificateur : (ip) -record(ip_table, { ip, % {integer(), integer(), integer(), integer()} ban = undefined, % la date du dernier bannissement ban_duration = 0, % le temps de ban en minute nb_try_register = 0, nb_try_login = 0, % pour l'instant pas utilisé date_last_try_register, date_last_try_login % pour l'instant pas utilisé }). -record(troll, { id, id_user, id_minichat = undefined, % l'id du message associé date_create, % erlang:timestamp() date_post = undefined, % date à laquelle le troll est affiché sur la page principale. undefined initialement puis erlang:timestamp() quand affiché content % chaine de caractère }).