# HG changeset patch # User Matthew Wild # Date 1701877846 0 # Node ID 32d662015a84a1ca1c9776b1690207c3f5c77e74 # Parent 34b46d157797368d9b994406e57847d99e353e67 mod_measure_active_users: Use the new mod_lastlog2 API diff -r 34b46d157797 -r 32d662015a84 mod_measure_active_users/mod_measure_active_users.lua --- a/mod_measure_active_users/mod_measure_active_users.lua Wed Dec 06 15:45:44 2023 +0000 +++ b/mod_measure_active_users/mod_measure_active_users.lua Wed Dec 06 15:50:46 2023 +0000 @@ -9,6 +9,8 @@ -- Exclude disabled user accounts from the counts if usermanager supports that API local count_disabled = not module:get_option_boolean("measure_active_users_count_disabled", is_enabled == nil); +local get_last_active = module:depends("lastlog2").get_last_active; + function update_calculations() module:log("debug", "Calculating active users"); local host = module.host; @@ -21,15 +23,8 @@ active_d1, active_d7, active_d30 = active_d1 + 1, active_d7 + 1, active_d30 + 1; elseif count_disabled or is_enabled(username, host) then - local lastlog_data = store:get(username); - if lastlog_data then - -- Due to server restarts/crashes/etc. some events - -- may not always get recorded, so we'll just take the - -- latest as a sign of last activity - local last_active = math.max( - lastlog_data.login and lastlog_data.login.timestamp or 0, - lastlog_data.logout and lastlog_data.logout.timestamp or 0 - ); + local last_active = get_last_active(username); + if last_active then if now - last_active < 86400 then active_d1 = active_d1 + 1; end