MOD avancement dans l'extraction d'une conversation entière
[euphorik.git] / doc / protocole3.txt
index 033c9ab..8c8d253 100644 (file)
@@ -40,45 +40,54 @@ Message ok g
    }
 
 
-=== Login ===
-Le mot de passe est hashé en md5.\r
-L'action 'register' permet de créer un nouvel utilisateur.\r
+=== Enregistrement et authentification ===
+Permet de créer un nouvel utilisateur.
+"login" et "password" peuvent ne pas être fournis avec un message de type "register", dans ce cas l'utilisateur ne pourra s'authentifier qu'a l'aide de son cookie.
+Le mot de passe est hashé en md5.
 
-c -> s\r
-   { \r
-      "action" : "authentification",\r
-      "login" : "Paul",\r
-      "password" : "IJKJDHHSAD9081238"\r
+c -> s
+   { 
+      "action" : "authentification",
+      "login" : "paul",
+      "password" : "IJKJDHHSAD9081238"
    }
-ou\r
-   {\r
-      "action" : "authentification",\r
-      "cookie" : "LKJDLAKSJBFLKASN"\r
+ou
+   {
+      "action" : "authentification",
+      "cookie" : "LKJDLAKSJBFLKASN"
    }
-ou\r
-   {\r
-      "action" : "register",\r
-      "login" : "Paul",\r
-      "password" : "IJKJDHHSAD9081238"\r
+ou
+   {
+      "action" : "register",
+      "login" : "paul",
+      "password" : "IJKJDHHSAD9081238"
    }
    
-s -> c\r
-   {\r
-      "reply" : "login",\r
-      "status" : "registration_ok" | "authentification_ok",\r
+s -> c
+   {
+      "reply" : "register" | "authentification",
+      "status" : "auth_not_registered",
+      "cookie" : "LKJDLAKSJBFLKASN",
+      "id" : 193,
+      "css" : "css/1/euphorik.css",
+      "main_page" : 1
+   }
+ou\r
+   {
+      "reply" : "register" | "authentification",\r
+      "status" : "auth_registered",\r
       "cookie" : "LKJDLAKSJBFLKASN",\r
       "id" : 193,\r
-      "pseudo" : "Paul",\r
+      "nick" : "Paul",\r
       "login" : "paul49",\r
       "email" : "paul@pierre.com",\r
-      "css" : "css/3/euphorik.css",\r
-      "main_page" : 1,
-      "conversations" : [
-         {
-            "racine" : 123,
-            "page" : 1
-         }
-      ]\r
+      "css" : "css/3/euphorik.css",
+      "nick_format" : "nick" | "login" | "nick_login",
+      "view_times" : true | false,
+      "view_tooltips" : true | false,\r
+      // "main_page" : 1,
+      "conversations" : [3, 8],
+      "ek_master" : true | false\r
    }
  \r
  
@@ -97,16 +106,14 @@ c -> s
       "cookie" : "LKJDLAKSJBFLKASN",\r
       "login" : "paul49",\r
       "password" : "IJKJDHHSAD9081238",\r
-      "pseudo" : "Paul",\r
+      "nick" : "Paul",\r
       "email" : "paul@pierre.com",\r
-      "css" : "css/3/euphorik.css",\r
+      "css" : "css/3/euphorik.css",
+      "nick_format" : "nick" | "login" | "nick_login",
+      "view_times" : true | false,
+      "view_tooltips" : true | false,\r
       "main_page" : 1,
-      "conversations" : [
-         {
-            "racine" : 123,
-            "page" : 1
-         }
-      ]\r
+      "conversations" : [3, 8]\r
    }\r
       
 s -> c
@@ -115,9 +122,10 @@ ou
    <error>
 
 
-=== Wait event ===
+=== Wait event (page = chat) ===
 Si "last_message_id" est absent alors le client ne possède pas de message.
-Les conversations lié aux trolls sont définies dans le profile.
+Si "main_page" est absent alors est vaut 1.
+"cookie" n'est pas obligatoire.
 
 c -> s\r
    {\r
@@ -126,10 +134,13 @@ c -> s
       "cookie" : "LKJDLAKSJBFLKASN",\r
       "message_count" : 10,
       "last_message_id" : 163,
+      "main_page" : 1,
+      "troll_id" : 45,
       "conversations" : [
          {
-            "racine" : 123,
-            "page" : 1
+            "root" : 123,
+            "page" : 1,
+            "last_message_id" : 4 (pas obligatoire)
          }
       ]\r
    }
@@ -139,13 +150,14 @@ La premi
 L'ordre des conversation est le même que celui des données de l'utilisateur.\r
 Le format de la date n'est pas formel.\r
    {\r
-      "reply" : "new_messages",\r
+      "reply" : "new_message",\r
       "conversations" : [\r
          {\r
             "last_page" : true | false,\r
             "messages" : [
                {\r
-                  "id" : 54,\r
+                  "id" : 54,
+                  "user_id" : 344,\r
                   "date" : "Hier 17:26:54",\r
                   "system" : true | false,\r
                   "owner" : true | false,\r
@@ -153,10 +165,12 @@ Le format de la date n'est pas formel.
                   "is_a_reply" : true | false,\r
                   "nick" : "Paul",\r
                   "login" : "paul_22",\r
-                  "content" : "Salut",\r
+                  "content" : "Salut",
+                  "root" : 453,\r
                   "answer_to" : [\r
-                     { "id" : 123, "pseudo" : "Pierre", "login" : "pierre_45" }\r
+                     { "id" : 123, "nick" : "Pierre", "login" : "pierre_45" }\r
                   ]
+                  "ek_master" : true | false
                }\r
             ]\r
          }
@@ -167,29 +181,103 @@ ou
    {\r
       "reply" : "message_updated",\r
       "message_id" : 123,\r
-      "contenu" : "Salut +++ poulpe"\r
+      "content" : "Salut +++ poulpe"\r
    }
-ou\r
-   {\r
-      "reply" : "error",\r
-      "error_message" : "blabla"\r
+ou
+   {
+      "reply" : "new_troll",
+      "troll_id" : 123,
+      "message_id" : 12,
+      "content" : "Linux sera desktop ready en 2008 ?"
+   }
+ou
+   <error>
+
+
+=== Wait event (page = admin) ===
+c -> s
+   {
+      "action" : "wait_event",
+      "page" : "admin",
+      "last_troll" : 5
+   }
+   
+s -> c
+   {
+      "reply" : "troll_modified",
+      "troll_id" : 3,
+      "content" : "plop"
+   }
+ou
+s -> c
+   {
+      "reply" : "troll_added",
+      "trolls" :
+         [
+            {
+               "troll_id" : 5,
+               "content" : "plop",
+               "author" : "<Pseudo>"
+               "author_id" : 2
+            }
+         ]
+   }
+ou
+s -> c
+   {
+      "reply" : "troll_deleted",
+      "troll_id" : 2
+   }
+ou
+indique de mettre à jour la liste d'ips
+s -> c
+   {
+      "reply" : "banned_ips_refresh"
    }
 \r
 \r
-=== Envoie d'un troll ===
-TODO\r
+=== Envoie d'un troll ===\r
 c -> s\r
    {\r
       "action" : "put_troll",\r
       "cookie" : "LKJDLAKSJBFLKASN",\r
       "content" : "Un bon troll velu !"\r
-   }\r
-=== Modification d'un troll ===\r
-TODO\r
-=== Suppression d'un troll ===\r
-TODO\r
-=== Noter un troll ===\r
-TODO
+   }
+s -> c
+   <ok>
+ou
+   <error>
+   
+   \r
+=== Modification d'un troll ===
+c -> s
+   {
+      "action" : "mod_troll",
+      "cookie" : "LKJDLAKSJBFLKASN",
+      "troll_id" : 3,
+      "content" : "Un bon troll velu 2 !"
+   }
+s -> c
+   <ok>
+ou
+   <error>
+   
+   \r
+=== Suppression d'un troll ===
+c -> s
+   {
+      "action" : "del_troll",
+      "cookie" : "LKJDLAKSJBFLKASN",
+      "troll_id" : 3
+   }
+s -> c
+   <ok>
+ou
+   <error>
+   
 
 === Envoie message ===
 Le client envoie un message, le message peut répondre à un certain nombre d'autres messages.
@@ -204,12 +292,81 @@ c -> s
       "answer_to" : [ 345, 532, ... ]\r
    }
  
-s -> c\r
-   {\r
-      "reply" : "ok" | "error",\r
-      "error_message" : "blabla"\r
+s -> c
+   <ok>
+ou
+   <error>
+
+
+=== Slapage ===
+c -> s
+   {
+      "action" : "slap",
+      "cookie" :  "LKJDLAKSJBFLKASN",
+      "user_id" : 67,
+      "reason" : "blablabla"
    }
\r
+   
+s -> c
+   <ok>
+ou
+   <error>
+   
+
+=== Bannissement ===
+c -> s
+   {
+      "action" : "ban",
+      "cookie" : "LKJDLAKSJBFLKASN",
+      "duration" : 15, // en minute
+      "user_id" : 67,
+      "reason" : "blablabla"
+   }
+   
+s -> c
+   <ok>
+ou
+   <error>
+   
+   
+=== Liste des ip bannis ===
+c -> s
+   {
+      "action" : "list_banned_ips",
+      "cookie" : "LKJDLAKSJBFLKASN"
+   }
+
+s -> c 
+   {
+      "reply" : "list_banned_ips",
+      "list" : [
+         {
+            ip : "192.168.1.2", 
+            remaining_time : "1h23"
+            users : [
+               {
+                  nick : "Pierre" , 
+                  login : "pierre" 
+               }
+            ]
+         }
+      ]
+   }
+   
+
+=== Débannissement ===
+c -> s
+   {
+      "action" : "unban",
+      "cookie" : "LKJDLAKSJBFLKASN"
+      "ip" : "192.168.1.2"
+   }
+   
+s -> c
+   <ok>
+ou
+   <error>
+\r
  \r
 === Ajout d'une correction d'un messages ===\r
 Le client envoie un correctif sous la forme de texte supplémentaire à appondre au dernier messages.\r