From 14d94ef6990e4d539b31197e8e88b57292af55a5 Mon Sep 17 00:00:00 2001 From: Hans Svensson Date: Fri, 6 Mar 2020 16:11:14 +0100 Subject: [PATCH 1/2] Add millisecond precision to roster:info logs --- apps/roster/src/roster.erl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/roster/src/roster.erl b/apps/roster/src/roster.erl index 094ff5327..ccde38cb8 100644 --- a/apps/roster/src/roster.erl +++ b/apps/roster/src/roster.erl @@ -2056,8 +2056,9 @@ daystime_to_ms({D, Time}) -> (D * 86400 + calendar:time_to_seconds(Time)) * 1000 timestamp_to_datetime(TimeStamp) -> UnixEpochGS = calendar:datetime_to_gregorian_seconds({{1970, 1, 1}, {0, 0, 0}}), GregorianSeconds = (TimeStamp div 1000) + UnixEpochGS, + Ms = TimeStamp rem 1000, {{Year, Month, Day}, {Hour, Minute, Second}} = calendar:gregorian_seconds_to_datetime(GregorianSeconds), - lists:flatten(io_lib:format("~4..0w-~2..0w-~2..0wT~2..0w:~2..0w:~2..0w", [Year, Month, Day, Hour, Minute, Second])). + lists:flatten(io_lib:format("~4..0w-~2..0w-~2..0wT~2..0w:~2..0w:~2..0w.~3..0w", [Year, Month, Day, Hour, Minute, Second, Ms])). mk2(I) when I < 10 -> [$0 | integer_to_list(I)]; mk2(I) -> integer_to_list(I). -- GitLab From 4fdd007a11489a0328a5ceb0a6401221cb97acc3 Mon Sep 17 00:00:00 2001 From: Hans Svensson Date: Fri, 6 Mar 2020 20:26:44 +0100 Subject: [PATCH 2/2] Don't evaluate length(...) unnecessarily --- apps/roster/src/roster.erl | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/apps/roster/src/roster.erl b/apps/roster/src/roster.erl index ccde38cb8..9e986471b 100644 --- a/apps/roster/src/roster.erl +++ b/apps/roster/src/roster.erl @@ -1274,29 +1274,19 @@ objlist(Index, Id, LastSync, N, Fun) when Index == #'Roster'.userlist; Index == #'Roster'.roomlist; Index == #'Roster'.favorite -> case kvs:get('Roster', Id) of - {ok, R} -> + {ok, R} -> objlist(Index, R, LastSync, N, Fun); _ -> {error, roster_not_found} end. -build_object(Object, - [Chunk | _] = Acc, - Roster, - LastSync, - N, - Fun) when length(Chunk) >= N -> +build_object(Object, [Chunk | _] = Acc, Roster, LastSync, N, Fun) + when N /= [] andalso length(Chunk) >= N -> Fun(Chunk), build_object(Object, [[] | Acc], Roster, LastSync, N, Fun); -build_object(Object, - Acc, - #'Roster'{ - id = Id, - phone = Phone - } = Roster, - LastSync, - _N, - _Fun) -> +build_object(Object, Acc, + #'Roster'{ id = Id, phone = Phone } = Roster, + LastSync, _N, _Fun) -> PhoneId = phone_id(Phone, Id), Feed = feed(Object, PhoneId), LastUpd = last_upd(Object), -- GitLab