3 local function log(type, message)
4 mainlog(type, "rostermanager", message);
7 local setmetatable = setmetatable;
8 local format = string.format;
9 local loadfile, setfenv, pcall = loadfile, setfenv, pcall;
13 require "util.datamanager"
15 local datamanager = datamanager;
17 module "rostermanager"
19 --[[function getroster(username, host)
21 ["mattj@localhost"] = true,
22 ["tobias@getjabber.ath.cx"] = true,
23 ["waqas@getjabber.ath.cx"] = true,
24 ["thorns@getjabber.ath.cx"] = true,
25 ["idw@getjabber.ath.cx"] = true,
27 --return datamanager.load(username, host, "roster") or {};
30 function add_to_roster(roster, jid, item)
35 function remove_from_roster(roster, jid)
40 function load_roster(username, host)
41 if hosts[host] and hosts[host].sessions[username] then
42 local roster = hosts[host].sessions[username].roster;
44 roster = datamanager.load(username, host, "roster") or {};
45 hosts[host].sessions[username].roster = roster;
49 error("Attempt to load roster for non-loaded user"); --return nil;
52 function save_roster(username, host)
53 if hosts[host] and hosts[host].sessions[username] and hosts[host].sessions[username].roster then
54 return datamanager.save(username, host, "roster", hosts[host].sessions[username].roster);