Diff

plugins/mod_mam/mamprefs.lib.lua @ 7836:30fac9154fd4

mod_mam: Import from prosody-modules
author Kim Alvefur <zash@zash.se>
date Fri, 04 Nov 2016 13:48:21 +0100
child 7850:10d91860172f
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/mod_mam/mamprefs.lib.lua	Fri Nov 04 13:48:21 2016 +0100
@@ -0,0 +1,41 @@
+-- XEP-0313: Message Archive Management for Prosody
+-- Copyright (C) 2011-2013 Kim Alvefur
+--
+-- This file is MIT/X11 licensed.
+
+local global_default_policy = module:get_option("default_archive_policy", true);
+
+do
+	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 = hosts[module.host].sessions;
+local prefs = module:open_store("archive2_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 and user_sessions then
+		user_prefs = prefs:get(user);
+		user_sessions.archive_prefs = user_prefs;
+	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,
+}