projects
/
euphorik.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
'formater' -> 'formatter'
[euphorik.git]
/
modules
/
erl
/
euphorik_requests.erl
diff --git
a/modules/erl/euphorik_requests.erl
b/modules/erl/euphorik_requests.erl
index
616d0e7
..
69a5597
100755
(executable)
--- a/
modules/erl/euphorik_requests.erl
+++ b/
modules/erl/euphorik_requests.erl
@@
-15,36
+15,36
@@
%
\r
% You should have received a copy of the GNU General Public License
\r
% along with Euphorik. If not, see <http://www.gnu.org/licenses/>.
\r
%
\r
% You should have received a copy of the GNU General Public License
\r
% along with Euphorik. If not, see <http://www.gnu.org/licenses/>.
\r
-%
\r
-% Ce module est fait pour répondre à des requêtes 'AJAX'.
\r
-% Il est définit comme 'appmods' pour l'url "request" dans yaws.
\r
-% Par exemple http://www.euphorik.ch/request abouti sur la fonction out() de ce module.
\r
-% @author G.Burri
\r
+%
\r
+% This module responds to JSON requests via 'AJAX'.
\r
+% It's defined as an Yaws 'appmods' with the url '/request'.
\r
+% For instance in debug mode 'http://localhost:8090/request' will call the out/1 function.
\r
\r
\r
-module(euphorik_requests).
\r
\r
\r
-module(euphorik_requests).
\r
+-author("Greg Burri <greg.burri@gmail.com>").
\r
-export([out/1]).
\r
-export([out/1]).
\r
--include_lib("xmerl/include/xmerl.hrl").
\r
--include_lib("yaws/include/yaws_api.hrl").
\r
+-include_lib("yaws_api.hrl").
\r
-include("../include/euphorik_defines.hrl").
\r
\r
\r
-include("../include/euphorik_defines.hrl").
\r
\r
\r
+% Entry point for all AJAX requests on '/request'.
\r
out(A) ->
\r
out(A) ->
\r
- %io:format("~p~n", [A]), % utilisé parfois pendant le debug
\r
IP = case inet:peername(A#arg.clisock) of
\r
IP = case inet:peername(A#arg.clisock) of
\r
- {ok, {Ad
resse, _Port}} -> Adresse
;
\r
- _ ->
inconnue
\r
+ {ok, {Ad
dress, _Port}} -> Address
;
\r
+ _ ->
unknown
\r
end,
\r
end,
\r
- %
passive -> active, permet de recevoir {tcp_closed, _} lorsque le socket se ferme
\r
- % keepalive
-> true, evite que des firewalls coupe la connexion TCP sans prévenir
\r
+ %
active: to receive {tcp_closed, _} when the socket is closing.
\r
+ % keepalive
: avoid firewalls to cut the connection.
\r
inet:setopts(A#arg.clisock, [{active, true}, {keepalive, true}]),
\r
{value, {_, Contenu}} = lists:keysearch("action", 1, yaws_api:parse_post(A)),
\r
inet:setopts(A#arg.clisock, [{active, true}, {keepalive, true}]),
\r
{value, {_, Contenu}} = lists:keysearch("action", 1, yaws_api:parse_post(A)),
\r
- Ret = traiter_
donnees
(Contenu, IP),
\r
+ Ret = traiter_
message
(Contenu, IP),
\r
{content, "application/json", Ret}.
\r
\r
\r
{content, "application/json", Ret}.
\r
\r
\r
-% Décode les données JSON.
\r
-traiter_donnees(Contenu, IP) ->
\r
+% Décode le message JSON.
\r
+traiter_message(Contenu, IP) ->
\r
+ % extrait l'entête obligatoire des messages JSON
\r
{ok, {struct, [{header, {struct, [{action, Action}, {version, Version_client}]}} | Reste]}} = json:decode_string(Contenu),
\r
json:encode(
\r
if Version_client =:= ?VERSION_PROTOCOLE ->
\r
{ok, {struct, [{header, {struct, [{action, Action}, {version, Version_client}]}} | Reste]}} = json:decode_string(Contenu),
\r
json:encode(
\r
if Version_client =:= ?VERSION_PROTOCOLE ->
\r
@@
-55,35
+55,32
@@
traiter_donnees(Contenu, IP) ->
)))
\r
end
\r
).
\r
)))
\r
end
\r
).
\r
-
\r
\r
\r
-% authentification d'un client
\r
+
\r
+% Authentification d'un client.
\r
traiter_action("authentification", JSON, IP) ->
\r
euphorik_protocole:login(JSON, IP);
\r
traiter_action("authentification", JSON, IP) ->
\r
euphorik_protocole:login(JSON, IP);
\r
-%
un client s'enregistre (pseudo + password)
\r
+%
Un client s'enregistre : (pseudo + password) ou de manière anonyme.
\r
traiter_action("register", JSON, IP) ->
\r
euphorik_protocole:register(JSON, IP);
\r
traiter_action("register", JSON, IP) ->
\r
euphorik_protocole:register(JSON, IP);
\r
-%
modification du profile
\r
+%
Modification du profile.
\r
traiter_action("set_profile", JSON, _) ->
\r
euphorik_protocole:profile(JSON);
\r
traiter_action("set_profile", JSON, _) ->
\r
euphorik_protocole:profile(JSON);
\r
-%
un utilisateur attend un événement (par exemple l'arrivé d'un nouveau message)
\r
+%
Un utilisateur attend un événement (par exemple l'arrivée d'un nouveau message).
\r
traiter_action("wait_event", JSON, _) ->
\r
euphorik_protocole:wait_event(JSON);
\r
traiter_action("wait_event", JSON, _) ->
\r
euphorik_protocole:wait_event(JSON);
\r
-%
un utilisateur envoie un message
\r
+%
Un utilisateur envoie un message.
\r
traiter_action("put_message", JSON, _) ->
\r
euphorik_protocole:put_message(JSON);
\r
traiter_action("put_message", JSON, _) ->
\r
euphorik_protocole:put_message(JSON);
\r
+% Un ekMaster bannie un utilisateur (ip).
\r
traiter_action("ban", JSON, _) ->
\r
euphorik_protocole:ban(JSON);
\r
traiter_action("ban", JSON, _) ->
\r
euphorik_protocole:ban(JSON);
\r
+% Un ekMaster slap un utilisateur.
\r
traiter_action("slap", JSON, _) ->
\r
euphorik_protocole:slap(JSON);
\r
traiter_action("slap", JSON, _) ->
\r
euphorik_protocole:slap(JSON);
\r
-traiter_action("put_troll", JSON, _) ->
\r
- euphorik_protocole:put_troll(JSON);
\r
-traiter_action("mod_troll", JSON, _) ->
\r
- euphorik_protocole:mod_troll(JSON);
\r
-traiter_action("del_troll", JSON, _) ->
\r
- euphorik_protocole:del_troll(JSON);
\r
+% Un ekMaster demande la liste des ips bannies.
\r
traiter_action("list_banned_ips", JSON, _) ->
\r
euphorik_protocole:list_banned_ips(JSON);
\r
traiter_action("list_banned_ips", JSON, _) ->
\r
euphorik_protocole:list_banned_ips(JSON);
\r
+% Un ekMaster débannie une ip.
\r
traiter_action("unban", JSON, _) ->
\r
euphorik_protocole:unban_ip(JSON).
\r
traiter_action("unban", JSON, _) ->
\r
euphorik_protocole:unban_ip(JSON).
\r
-
\ No newline at end of file