aboutsummaryrefslogtreecommitdiff
path: root/src/mod_irc
diff options
context:
space:
mode:
authorAlexey Shchepin <alexey@process-one.net>2005-01-13 23:04:47 +0000
committerAlexey Shchepin <alexey@process-one.net>2005-01-13 23:04:47 +0000
commit36afafb9e6ab5842de928439427f05a8a33042a6 (patch)
tree7bc6745b474feaa9e747b6995847bae303f62822 /src/mod_irc
parent* src/odbc/ejabberd_odbc.erl: Load-balance ODBC requests between (diff)
* src/mod_irc/mod_irc_connection.erl: Added filtering of quit
status * src/web/ejabberd_web_admin.erl: Copyright update * src/mod_vcard_ldap.erl: Likewise * src/mod_vcard.erl: Likewise * src/mod_pubsub/mod_pubsub.erl: Likewise * src/mod_muc/mod_muc.erl: Likewise * src/mod_irc/mod_irc.erl: Likewise SVN Revision: 296
Diffstat (limited to 'src/mod_irc')
-rw-r--r--src/mod_irc/mod_irc.erl2
-rw-r--r--src/mod_irc/mod_irc_connection.erl94
2 files changed, 26 insertions, 70 deletions
diff --git a/src/mod_irc/mod_irc.erl b/src/mod_irc/mod_irc.erl
index efa3c995e..1a9d78ce2 100644
--- a/src/mod_irc/mod_irc.erl
+++ b/src/mod_irc/mod_irc.erl
@@ -199,7 +199,7 @@ iq_get_vcard(Lang) ->
"http://ejabberd.jabberstudio.org/"}]},
{xmlelement, "DESC", [],
[{xmlcdata, translate:translate(Lang, "ejabberd IRC module\n"
- "Copyright (c) 2003-2004 Alexey Shchepin")}]}].
+ "Copyright (c) 2003-2005 Alexey Shchepin")}]}].
process_register(From, To, #iq{} = IQ) ->
case catch process_irc_register(From, To, IQ) of
diff --git a/src/mod_irc/mod_irc_connection.erl b/src/mod_irc/mod_irc_connection.erl
index f4e1c29d3..fff4fedf8 100644
--- a/src/mod_irc/mod_irc_connection.erl
+++ b/src/mod_irc/mod_irc_connection.erl
@@ -614,16 +614,7 @@ process_channel_list_user(StateData, Chan, User) ->
process_channel_topic(StateData, Chan, String) ->
FromUser = "someone",
{ok, Msg, _} = regexp:sub(String, ".*332[^:]*:", ""),
- Msg1 = lists:filter(
- fun(C) ->
- if (C < 32) and
- (C /= 9) and
- (C /= 10) and
- (C /= 13) ->
- false;
- true -> true
- end
- end, Msg),
+ Msg1 = filter_message(Msg),
ejabberd_router:route(
jlib:make_jid(
lists:concat([Chan, "%", StateData#state.server]),
@@ -642,16 +633,7 @@ process_chanprivmsg(StateData, Chan, From, String) ->
_ ->
Msg
end,
- Msg2 = lists:filter(
- fun(C) ->
- if (C < 32) and
- (C /= 9) and
- (C /= 10) and
- (C /= 13) ->
- false;
- true -> true
- end
- end, Msg1),
+ Msg2 = filter_message(Msg1),
ejabberd_router:route(
jlib:make_jid(lists:concat([Chan, "%", StateData#state.server]),
StateData#state.myname, FromUser),
@@ -670,16 +652,7 @@ process_channotice(StateData, Chan, From, String) ->
_ ->
Msg
end,
- Msg2 = lists:filter(
- fun(C) ->
- if (C < 32) and
- (C /= 9) and
- (C /= 10) and
- (C /= 13) ->
- false;
- true -> true
- end
- end, Msg1),
+ Msg2 = filter_message(Msg1),
ejabberd_router:route(
jlib:make_jid(lists:concat([Chan, "%", StateData#state.server]),
StateData#state.myname, FromUser),
@@ -699,16 +672,7 @@ process_privmsg(StateData, Nick, From, String) ->
_ ->
Msg
end,
- Msg2 = lists:filter(
- fun(C) ->
- if (C < 32) and
- (C /= 9) and
- (C /= 10) and
- (C /= 13) ->
- false;
- true -> true
- end
- end, Msg1),
+ Msg2 = filter_message(Msg1),
ejabberd_router:route(
jlib:make_jid(lists:concat([FromUser, "!", StateData#state.server]),
StateData#state.myname, ""),
@@ -726,16 +690,7 @@ process_notice(StateData, Nick, From, String) ->
_ ->
Msg
end,
- Msg2 = lists:filter(
- fun(C) ->
- if (C < 32) and
- (C /= 9) and
- (C /= 10) and
- (C /= 13) ->
- false;
- true -> true
- end
- end, Msg1),
+ Msg2 = filter_message(Msg1),
ejabberd_router:route(
jlib:make_jid(lists:concat([FromUser, "!", StateData#state.server]),
StateData#state.myname, ""),
@@ -761,16 +716,7 @@ process_version(StateData, Nick, From) ->
process_topic(StateData, Chan, From, String) ->
[FromUser | _] = string:tokens(From, "!"),
{ok, Msg, _} = regexp:sub(String, ".*TOPIC[^:]*:", ""),
- Msg1 = lists:filter(
- fun(C) ->
- if (C < 32) and
- (C /= 9) and
- (C /= 10) and
- (C /= 13) ->
- false;
- true -> true
- end
- end, Msg),
+ Msg1 = filter_message(Msg),
ejabberd_router:route(
jlib:make_jid(lists:concat([Chan, "%", StateData#state.server]),
StateData#state.myname, FromUser),
@@ -784,6 +730,7 @@ process_topic(StateData, Chan, From, String) ->
process_part(StateData, Chan, From, String) ->
[FromUser | FromIdent] = string:tokens(From, "!"),
{ok, Msg, _} = regexp:sub(String, ".*PART[^:]*", ""),
+ Msg1 = filter_message(Msg),
ejabberd_router:route(
jlib:make_jid(lists:concat([Chan, "%", StateData#state.server]),
StateData#state.myname, FromUser),
@@ -791,7 +738,7 @@ process_part(StateData, Chan, From, String) ->
{xmlelement, "message", [{"type", "groupchat"}],
[{xmlelement, "body", [],
[{xmlcdata, "/me has part: " ++
- Msg ++ "(" ++ FromIdent ++ ")" }]}]}),
+ Msg1 ++ "(" ++ FromIdent ++ ")" }]}]}),
ejabberd_router:route(
jlib:make_jid(lists:concat([Chan, "%", StateData#state.server]),
@@ -804,7 +751,7 @@ process_part(StateData, Chan, From, String) ->
{"role", "none"}],
[]}]},
{xmlelement, "status", [],
- [{xmlcdata, Msg ++ "(" ++ FromIdent ++ ")"}]}]
+ [{xmlcdata, Msg1 ++ "(" ++ FromIdent ++ ")"}]}]
}),
case catch dict:update(Chan,
fun(Ps) ->
@@ -821,6 +768,7 @@ process_quit(StateData, From, String) ->
[FromUser | FromIdent] = string:tokens(From, "!"),
{ok, Msg, _} = regexp:sub(String, ".*QUIT[^:]*:", ""),
+ Msg1 = filter_message(Msg),
NewChans =
dict:map(
fun(Chan, Ps) ->
@@ -834,7 +782,7 @@ process_quit(StateData, From, String) ->
{xmlelement, "message", [{"type", "groupchat"}],
[{xmlelement, "body", [],
[{xmlcdata, "/me has quit: " ++
- Msg ++ "(" ++ FromIdent ++ ")" }]}]}),
+ Msg1 ++ "(" ++ FromIdent ++ ")" }]}]}),
ejabberd_router:route(
jlib:make_jid(
@@ -848,7 +796,7 @@ process_quit(StateData, From, String) ->
{"role", "none"}],
[]}]},
{xmlelement, "status", [],
- [{xmlcdata, Msg ++ "(" ++ FromIdent ++ ")"}]}
+ [{xmlcdata, Msg1 ++ "(" ++ FromIdent ++ ")"}]}
]}),
remove_element(FromUser, Ps);
_ ->
@@ -874,6 +822,7 @@ process_join(StateData, Channel, From, String) ->
{xmlelement, "status", [],
[{xmlcdata, FromIdent}]}]}),
{ok, Msg, _} = regexp:sub(String, ".*JOIN[^:]*:", ""),
+ Msg1 = filter_message(Msg),
ejabberd_router:route(
jlib:make_jid(lists:concat([Chan, "%", StateData#state.server]),
StateData#state.myname, FromUser),
@@ -881,7 +830,7 @@ process_join(StateData, Channel, From, String) ->
{xmlelement, "message", [{"type", "groupchat"}],
[{xmlelement, "body", [],
[{xmlcdata, "/me has joined " ++
- Msg ++ "(" ++ FromIdent ++ ")" }]}]}),
+ Msg1 ++ "(" ++ FromIdent ++ ")" }]}]}),
case catch dict:update(Chan,
fun(Ps) ->
@@ -1058,7 +1007,14 @@ process_admin(StateData, Channel, Nick, Affiliation, Role, Reason) ->
-
-
-
-
+filter_message(Msg) ->
+ lists:filter(
+ fun(C) ->
+ if (C < 32) and
+ (C /= 9) and
+ (C /= 10) and
+ (C /= 13) ->
+ false;
+ true -> true
+ end
+ end, Msg).