Mercurial > prosody-modules
view mod_mam/mamprefs.lib.lua @ 4300:3f3b672b7616
mod_vcard_muc: Pass room object around instead of JID, hopefully fixing traceback
More efficient to pass the object around instead of using the JID
and looking up the object when needed.
It seems in some (undetermined) cases get_room_from_jid(room.jid) is nil.
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Tue, 15 Dec 2020 10:49:11 +0000 |
parents | 9ffb059c9ba5 |
children |
line wrap: on
line source
-- XEP-0313: Message Archive Management for Prosody -- Copyright (C) 2011-2013 Kim Alvefur -- -- This file is MIT/X11 licensed. -- luacheck: ignore 122/prosody local global_default_policy = module:get_option("default_archive_policy", true); do -- luacheck: ignore 211/prefs_format local prefs_format = { [false] = "roster", -- default ::= true | false | "roster" -- true = always, false = never, nil = global default ["romeo@montague.net"] = true, -- always ["montague@montague.net"] = false, -- newer }; end local sessions = prosody.hosts[module.host].sessions; local archive_store = module:get_option_string("archive_store", "archive"); local prefs = module:open_store(archive_store .. "_prefs"); local function get_prefs(user) local user_sessions = sessions[user]; local user_prefs = user_sessions and user_sessions.archive_prefs if not user_prefs then user_prefs = prefs:get(user); if user_sessions then user_sessions.archive_prefs = user_prefs; end end return user_prefs or { [false] = global_default_policy }; end local function set_prefs(user, user_prefs) local user_sessions = sessions[user]; if user_sessions then user_sessions.archive_prefs = user_prefs; end return prefs:set(user, user_prefs); end return { get = get_prefs, set = set_prefs, }