plugins/mod_pep_plus.lua
changeset 8309 202b9951b037
parent 8308 ec605946e597
child 8310 94860b5733d3
equal deleted inserted replaced
8308:ec605946e597 8309:202b9951b037
    20 local recipients = {};
    20 local recipients = {};
    21 local hash_map = {};
    21 local hash_map = {};
    22 
    22 
    23 local host = module.host;
    23 local host = module.host;
    24 
    24 
       
    25 local known_nodes_map = module:open_store("pep", "map");
       
    26 local known_nodes = module:open_store("pep");
       
    27 
    25 function module.save()
    28 function module.save()
    26 	return { services = services };
    29 	return { services = services };
    27 end
    30 end
    28 
    31 
    29 function module.restore(data)
    32 function module.restore(data)
    38 end
    41 end
    39 
    42 
    40 local function simple_itemstore(username)
    43 local function simple_itemstore(username)
    41 	return function (config, node)
    44 	return function (config, node)
    42 		module:log("debug", "new simple_itemstore(%q, %q)", username, node);
    45 		module:log("debug", "new simple_itemstore(%q, %q)", username, node);
       
    46 		known_nodes_map:set(username, node, true);
    43 		local archive = module:open_store("pep_"..node, "archive");
    47 		local archive = module:open_store("pep_"..node, "archive");
    44 		return lib_pubsub.simple_itemstore(archive, config, username, node, false);
    48 		return lib_pubsub.simple_itemstore(archive, config, username, node, false);
    45 	end
    49 	end
    46 end
    50 end
    47 
    51 
   184 			end
   188 			end
   185 		end;
   189 		end;
   186 
   190 
   187 		normalize_jid = jid_bare;
   191 		normalize_jid = jid_bare;
   188 	});
   192 	});
       
   193 	local nodes, err = known_nodes:get(username);
       
   194 	if nodes then
       
   195 		module:log("debug", "Restoring nodes for user %s", username);
       
   196 		for node in pairs(nodes) do
       
   197 			module:log("debug", "Restoring node %q", node);
       
   198 			service:create(node, true);
       
   199 		end
       
   200 	elseif err then
       
   201 		module:log("error", "Could not restore nodes for %s: %s", username, err);
       
   202 	else
       
   203 		module:log("debug", "No known nodes");
       
   204 	end
   189 	services[username] = service;
   205 	services[username] = service;
   190 	module:add_item("pep-service", { service = service, jid = user_bare });
   206 	module:add_item("pep-service", { service = service, jid = user_bare });
   191 	return service;
   207 	return service;
   192 end
   208 end
   193 
   209