diff options
author | Evgeny Khramtsov <ekhramtsov@process-one.net> | 2019-09-23 15:17:20 +0300 |
---|---|---|
committer | Evgeny Khramtsov <ekhramtsov@process-one.net> | 2019-09-23 15:17:20 +0300 |
commit | 5770946f03ba669ea867b787fbd546333a8a3814 (patch) | |
tree | 73a03717ac5d4c31e12b92c1aba3b407f3c5329c /src/mod_muc_log.erl | |
parent | Fix unicode formatting in ACME module (diff) |
Correctly handle unicode in log messages
Diffstat (limited to '')
-rw-r--r-- | src/mod_muc_log.erl | 88 |
1 files changed, 44 insertions, 44 deletions
diff --git a/src/mod_muc_log.erl b/src/mod_muc_log.erl index 676498724..b20d94935 100644 --- a/src/mod_muc_log.erl +++ b/src/mod_muc_log.erl @@ -257,26 +257,26 @@ write_last_lines(F, Images_dir, _FileFormat) -> fw(F, <<"<div class=\"legend\">">>), fw(F, <<" <a href=\"http://www.ejabberd.im\"><img " - "style=\"border:0\" src=\"~s/powered-by-ejabbe" + "style=\"border:0\" src=\"~ts/powered-by-ejabbe" "rd.png\" alt=\"Powered by ejabberd - robust, scalable and extensible XMPP server\"/></a>">>, [Images_dir]), fw(F, <<" <a href=\"http://www.erlang.org/\"><img " - "style=\"border:0\" src=\"~s/powered-by-erlang" + "style=\"border:0\" src=\"~ts/powered-by-erlang" ".png\" alt=\"Powered by Erlang\"/></a>">>, [Images_dir]), fw(F, <<"<span class=\"w3c\">">>), fw(F, <<" <a href=\"http://validator.w3.org/check?uri" "=referer\"><img style=\"border:0;width:88px;h" - "eight:31px\" src=\"~s/valid-xhtml10.png\" " + "eight:31px\" src=\"~ts/valid-xhtml10.png\" " "alt=\"Valid XHTML 1.0 Transitional\" " "/></a>">>, [Images_dir]), fw(F, <<" <a href=\"http://jigsaw.w3.org/css-validato" "r/\"><img style=\"border:0;width:88px;height:" - "31px\" src=\"~s/vcss.png\" alt=\"Valid " + "31px\" src=\"~ts/vcss.png\" alt=\"Valid " "CSS!\"/></a>">>, [Images_dir]), fw(F, <<"</span></div></body></html>">>). @@ -345,7 +345,7 @@ add_message_to_log(Nick1, Message, RoomJID, Opts, RoomConfig = roomconfig_to_string(Room#room.config, Lang, FileFormat), put_room_config(F, RoomConfig, Lang, FileFormat), - io_lib:format("<font class=\"mrcm\">~s</font><br/>", + io_lib:format("<font class=\"mrcm\">~ts</font><br/>", [tr(Lang, ?T("Chatroom configuration modified"))]); {roomconfig_change, Occupants} -> RoomConfig = roomconfig_to_string(Room#room.config, @@ -354,70 +354,70 @@ add_message_to_log(Nick1, Message, RoomJID, Opts, RoomOccupants = roomoccupants_to_string(Occupants, FileFormat), put_room_occupants(F, RoomOccupants, Lang, FileFormat), - io_lib:format("<font class=\"mrcm\">~s</font><br/>", + io_lib:format("<font class=\"mrcm\">~ts</font><br/>", [tr(Lang, ?T("Chatroom configuration modified"))]); join -> - io_lib:format("<font class=\"mj\">~s ~s</font><br/>", + io_lib:format("<font class=\"mj\">~ts ~ts</font><br/>", [Nick, tr(Lang, ?T("joins the room"))]); leave -> - io_lib:format("<font class=\"ml\">~s ~s</font><br/>", + io_lib:format("<font class=\"ml\">~ts ~ts</font><br/>", [Nick, tr(Lang, ?T("leaves the room"))]); {leave, Reason} -> - io_lib:format("<font class=\"ml\">~s ~s: ~s</font><br/>", + io_lib:format("<font class=\"ml\">~ts ~ts: ~ts</font><br/>", [Nick, tr(Lang, ?T("leaves the room")), htmlize(Reason, NoFollow, FileFormat)]); {kickban, 301, <<"">>} -> - io_lib:format("<font class=\"mb\">~s ~s</font><br/>", + io_lib:format("<font class=\"mb\">~ts ~ts</font><br/>", [Nick, tr(Lang, ?T("has been banned"))]); {kickban, 301, Reason} -> - io_lib:format("<font class=\"mb\">~s ~s: ~s</font><br/>", + io_lib:format("<font class=\"mb\">~ts ~ts: ~ts</font><br/>", [Nick, tr(Lang, ?T("has been banned")), htmlize(Reason, FileFormat)]); {kickban, 307, <<"">>} -> - io_lib:format("<font class=\"mk\">~s ~s</font><br/>", + io_lib:format("<font class=\"mk\">~ts ~ts</font><br/>", [Nick, tr(Lang, ?T("has been kicked"))]); {kickban, 307, Reason} -> - io_lib:format("<font class=\"mk\">~s ~s: ~s</font><br/>", + io_lib:format("<font class=\"mk\">~ts ~ts: ~ts</font><br/>", [Nick, tr(Lang, ?T("has been kicked")), htmlize(Reason, FileFormat)]); {kickban, 321, <<"">>} -> - io_lib:format("<font class=\"mk\">~s ~s</font><br/>", + io_lib:format("<font class=\"mk\">~ts ~ts</font><br/>", [Nick, tr(Lang, ?T("has been kicked because of an affiliation " "change"))]); {kickban, 322, <<"">>} -> - io_lib:format("<font class=\"mk\">~s ~s</font><br/>", + io_lib:format("<font class=\"mk\">~ts ~ts</font><br/>", [Nick, tr(Lang, ?T("has been kicked because the room has " "been changed to members-only"))]); {kickban, 332, <<"">>} -> - io_lib:format("<font class=\"mk\">~s ~s</font><br/>", + io_lib:format("<font class=\"mk\">~ts ~ts</font><br/>", [Nick, tr(Lang, ?T("has been kicked because of a system " "shutdown"))]); {nickchange, OldNick} -> - io_lib:format("<font class=\"mnc\">~s ~s ~s</font><br/>", + io_lib:format("<font class=\"mnc\">~ts ~ts ~ts</font><br/>", [htmlize(OldNick, FileFormat), tr(Lang, ?T("is now known as")), Nick]); {subject, T} -> - io_lib:format("<font class=\"msc\">~s~s~s</font><br/>", + io_lib:format("<font class=\"msc\">~ts~ts~ts</font><br/>", [Nick, tr(Lang, ?T(" has set the subject to: ")), htmlize(T, NoFollow, FileFormat)]); {body, T} -> case {ejabberd_regexp:run(T, <<"^/me ">>), Nick} of {_, <<"">>} -> - io_lib:format("<font class=\"msm\">~s</font><br/>", + io_lib:format("<font class=\"msm\">~ts</font><br/>", [htmlize(T, NoFollow, FileFormat)]); {match, _} -> - io_lib:format("<font class=\"mne\">~s ~s</font><br/>", + io_lib:format("<font class=\"mne\">~ts ~ts</font><br/>", [Nick, str:substr(htmlize(T, FileFormat), 5)]); {nomatch, _} -> - io_lib:format("<font class=\"mn\">~s</font> ~s<br/>", + io_lib:format("<font class=\"mn\">~ts</font> ~ts<br/>", [Nick2, htmlize(T, NoFollow, FileFormat)]) end; {room_existence, RoomNewExistence} -> - io_lib:format("<font class=\"mrcm\">~s</font><br/>", + io_lib:format("<font class=\"mrcm\">~ts</font><br/>", [get_room_existence_string(RoomNewExistence, Lang)]) end, @@ -425,12 +425,12 @@ add_message_to_log(Nick1, Message, RoomJID, Opts, STime = io_lib:format("~2..0w:~2..0w:~2..0w", [Hour, Minute, Second]), {_, _, Microsecs} = Now, - STimeUnique = io_lib:format("~s.~w", + STimeUnique = io_lib:format("~ts.~w", [STime, Microsecs]), catch fw(F, list_to_binary( - io_lib:format("<a id=\"~s\" name=\"~s\" href=\"#~s\" " - "class=\"ts\">[~s]</a> ", + io_lib:format("<a id=\"~ts\" name=\"~ts\" href=\"#~ts\" " + "class=\"ts\">[~ts]</a> ", [STimeUnique, STimeUnique, STimeUnique, STime]) ++ Text), FileFormat), @@ -477,12 +477,12 @@ get_dateweek(Date, Lang) -> list_to_binary( case Lang of <<"en">> -> - io_lib:format("~s, ~s ~w, ~w", [Weekday, Month, D, Y]); + io_lib:format("~ts, ~ts ~w, ~w", [Weekday, Month, D, Y]); <<"es">> -> - io_lib:format("~s ~w de ~s de ~w", + io_lib:format("~ts ~w de ~ts de ~w", [Weekday, D, Month, Y]); _ -> - io_lib:format("~s, ~w ~s ~w", [Weekday, D, Month, Y]) + io_lib:format("~ts, ~w ~ts ~w", [Weekday, D, Month, Y]) end). make_dir_rec(Dir) -> @@ -504,7 +504,7 @@ create_image_files(Images_dir) -> case file:copy(Src, Dst) of {ok, _} -> ok; {error, Why} -> - ?ERROR_MSG("Failed to copy ~s to ~s: ~s", + ?ERROR_MSG("Failed to copy ~ts to ~ts: ~ts", [Src, Dst, file:format_error(Why)]) end end, Filenames). @@ -537,13 +537,13 @@ put_header(F, Room, Date, CSSFile, Lang, Hour_offset, "org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">">>), fw(F, <<"<html xmlns=\"http://www.w3.org/1999/xhtml\" " - "xml:lang=\"~s\" lang=\"~s\">">>, + "xml:lang=\"~ts\" lang=\"~ts\">">>, [Lang, Lang]), fw(F, <<"<head>">>), fw(F, <<"<meta http-equiv=\"Content-Type\" content=\"t" "ext/html; charset=utf-8\" />">>), - fw(F, <<"<title>~s - ~s</title>">>, + fw(F, <<"<title>~ts - ~ts</title>">>, [htmlize(Room#room.title), Date]), put_header_css(F, CSSFile), put_header_script(F), @@ -554,19 +554,19 @@ put_header(F, Room, Date, CSSFile, Lang, Hour_offset, <<"<div style=\"text-align: right;\"><a " "style=\"color: #AAAAAA; font-family: " "monospace; text-decoration: none; font-weight" - ": bold;\" href=\"~s\">~s</a></div>">>, + ": bold;\" href=\"~ts\">~ts</a></div>">>, [Top_url, Top_text]), - fw(F, <<"<div class=\"roomtitle\">~s</div>">>, + fw(F, <<"<div class=\"roomtitle\">~ts</div>">>, [htmlize(Room#room.title)]), fw(F, - <<"<a class=\"roomjid\" href=\"xmpp:~s?join\">~s" + <<"<a class=\"roomjid\" href=\"xmpp:~ts?join\">~ts" "</a>">>, [Room#room.jid, Room#room.jid]), fw(F, - <<"<div class=\"logdate\">~s<span class=\"w3c\">" - "<a class=\"nav\" href=\"~s\"><</a> " + <<"<div class=\"logdate\">~ts<span class=\"w3c\">" + "<a class=\"nav\" href=\"~ts\"><</a> " "<a class=\"nav\" href=\"./\">^</a> <a " - "class=\"nav\" href=\"~s\">></a></span></di" + "class=\"nav\" href=\"~ts\">></a></span></di" "v>">>, [Date, Date_prev, Date_next]), case {htmlize(Room#room.subject_author), @@ -574,7 +574,7 @@ put_header(F, Room, Date, CSSFile, Lang, Hour_offset, of {<<"">>, <<"">>} -> ok; {SuA, Su} -> - fw(F, <<"<div class=\"roomsubject\">~s~s~s</div>">>, + fw(F, <<"<div class=\"roomsubject\">~ts~ts~ts</div>">>, [SuA, tr(Lang, ?T(" has set the subject to: ")), Su]) end, RoomConfig = roomconfig_to_string(Room#room.config, @@ -588,7 +588,7 @@ put_header(F, Room, Date, CSSFile, Lang, Hour_offset, true -> io_lib:format("~p", [Hour_offset]); false -> io_lib:format("+~p", [Hour_offset]) end, - fw(F, <<"<br/><a class=\"ts\">GMT~s</a><br/>">>, + fw(F, <<"<br/><a class=\"ts\">GMT~ts</a><br/>">>, [Time_offset_str]). put_header_css(F, {file, Path}) -> @@ -603,7 +603,7 @@ put_header_css(F, {file, Path}) -> put_header_css(F, {url, URL}) -> fw(F, <<"<link rel=\"stylesheet\" type=\"text/css\" " - "href=\"~s\" media=\"all\">">>, + "href=\"~ts\" media=\"all\">">>, [URL]). put_header_script(F) -> @@ -621,11 +621,11 @@ put_room_config(F, RoomConfig, Lang, _FileFormat) -> fw(F, <<"<div class=\"rc\">">>), fw(F, <<"<div class=\"rct\" onclick=\"sh('a~p');return " - "false;\">~s</div>">>, + "false;\">~ts</div>">>, [Now2, tr(Lang, ?T("Room Configuration"))]), fw(F, <<"<div class=\"rcos\" id=\"a~p\" style=\"displa" - "y: none;\" ><br/>~s</div>">>, + "y: none;\" ><br/>~ts</div>">>, [Now2, RoomConfig]), fw(F, <<"</div>">>). @@ -641,11 +641,11 @@ put_room_occupants(F, RoomOccupants, Lang, fw(F, <<"<div class=\"rc\">">>), fw(F, <<"<div class=\"rct\" onclick=\"sh('o~p');return " - "false;\">~s</div>">>, + "false;\">~ts</div>">>, [Now2, tr(Lang, ?T("Room Occupants"))]), fw(F, <<"<div class=\"rcos\" id=\"o~p\" style=\"displa" - "y: none;\" ><br/>~s</div>">>, + "y: none;\" ><br/>~ts</div>">>, [Now2, RoomOccupants]), fw(F, <<"</div>">>). |