Software /
code /
prosody-modules
File
mod_invites_tracking/mod_invites_tracking.lua @ 6195:886c985ece61
mod_lastlog2: Skip initializing internal API (and storage) in prosodyctl
Initializing storage in the global context under prosodyctl causes the
module.command to fail to execute because the storage module has already
been loaded.
Introduced in 7b722955c59b
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sat, 08 Feb 2025 14:12:18 +0100 |
parent | 5925:9ed02a4f6ff4 |
line wrap: on
line source
local tracking_store = module:open_store("invites_tracking"); module:hook("user-registered", function(event) local validated_invite = event.validated_invite or (event.session and event.session.validated_invite); local new_username = event.username; if not validated_invite then module:log("debug", "No invitation found for registration of %s", new_username); return; end local invite_id = nil; local invite_source = nil; if validated_invite then invite_source = validated_invite.additional_data and validated_invite.additional_data.source; invite_id = validated_invite.token; end tracking_store:set(new_username, {invite_id = invite_id, invite_source = invite_source}); module:log("debug", "recorded that invite from %s was used to create %s", invite_source, new_username) end); -- " " is an invalid localpart -> we can safely use it for store metadata tracking_store:set(" ", {version="1"});