Changeset

7280:8b5a9208c212

Merge 0.10->trunk
author Kim Alvefur <zash@zash.se>
date Mon, 14 Mar 2016 17:38:50 +0100
parents 7278:1891854b25ac (current diff) 7279:051279755cad (diff)
children 7282:29eedc776bbd
files
diffstat 2 files changed, 40 insertions(+), 24 deletions(-) [+]
line wrap: on
line diff
--- a/plugins/mod_presence.lua	Mon Mar 14 14:20:37 2016 +0100
+++ b/plugins/mod_presence.lua	Mon Mar 14 17:38:50 2016 +0100
@@ -10,7 +10,7 @@
 
 local require = require;
 local pairs = pairs;
-local t_concat, t_insert = table.concat, table.insert;
+local t_concat = table.concat;
 local s_find = string.find;
 local tonumber = tonumber;
 
@@ -27,29 +27,7 @@
 local rostermanager = require "core.rostermanager";
 local sessionmanager = require "core.sessionmanager";
 
-local function select_top_resources(user)
-	local priority = 0;
-	local recipients = {};
-	for _, session in pairs(user.sessions) do -- find resource with greatest priority
-		if session.presence then
-			-- TODO check active privacy list for session
-			local p = session.priority;
-			if p > priority then
-				priority = p;
-				recipients = {session};
-			elseif p == priority then
-				t_insert(recipients, session);
-			end
-		end
-	end
-	return recipients;
-end
-local function recalc_resource_map(user)
-	if user then
-		user.top_resources = select_top_resources(user);
-		if #user.top_resources == 0 then user.top_resources = nil; end
-	end
-end
+local recalc_resource_map = require "util.presencepriority".recalc_resource_map;
 
 local ignore_presence_priority = module:get_option_boolean("ignore_presence_priority", false);
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/util/presence.lua	Mon Mar 14 17:38:50 2016 +0100
@@ -0,0 +1,38 @@
+-- Prosody IM
+-- Copyright (C) 2008-2010 Matthew Wild
+-- Copyright (C) 2008-2010 Waqas Hussain
+--
+-- This project is MIT/X11 licensed. Please see the
+-- COPYING file in the source package for more information.
+--
+
+local t_insert = table.insert;
+
+local function select_top_resources(user)
+	local priority = 0;
+	local recipients = {};
+	for _, session in pairs(user.sessions) do -- find resource with greatest priority
+		if session.presence then
+			-- TODO check active privacy list for session
+			local p = session.priority;
+			if p > priority then
+				priority = p;
+				recipients = {session};
+			elseif p == priority then
+				t_insert(recipients, session);
+			end
+		end
+	end
+	return recipients;
+end
+local function recalc_resource_map(user)
+	if user then
+		user.top_resources = select_top_resources(user);
+		if #user.top_resources == 0 then user.top_resources = nil; end
+	end
+end
+
+return {
+	select_top_resources = select_top_resources;
+	recalc_resource_map = recalc_resource_map;
+}