author | Waqas Hussain <waqas20@gmail.com> |
Tue, 14 Oct 2008 07:20:29 +0500 | |
changeset 103 | ebdb7875443e |
parent 101 | c690fa382743 |
child 107 | 8d8debda3df2 |
permissions | -rw-r--r-- |
0 | 1 |
|
2 |
local mainlog = log; |
|
3 |
local function log(type, message) |
|
4 |
mainlog(type, "rostermanager", message); |
|
5 |
end |
|
6 |
||
7 |
local setmetatable = setmetatable; |
|
8 |
local format = string.format; |
|
9 |
local loadfile, setfenv, pcall = loadfile, setfenv, pcall; |
|
10 |
||
103
ebdb7875443e
Fixed: Typos caused by lack of sleep.
Waqas Hussain <waqas20@gmail.com>
parents:
101
diff
changeset
|
11 |
local hosts = hosts; |
ebdb7875443e
Fixed: Typos caused by lack of sleep.
Waqas Hussain <waqas20@gmail.com>
parents:
101
diff
changeset
|
12 |
|
0 | 13 |
require "util.datamanager" |
14 |
||
15 |
local datamanager = datamanager; |
|
16 |
||
17 |
module "rostermanager" |
|
18 |
||
101
c690fa382743
Added some roster management functions
Waqas Hussain <waqas20@gmail.com>
parents:
80
diff
changeset
|
19 |
--[[function getroster(username, host) |
3 | 20 |
return { |
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, |
|
26 |
} |
|
101
c690fa382743
Added some roster management functions
Waqas Hussain <waqas20@gmail.com>
parents:
80
diff
changeset
|
27 |
--return datamanager.load(username, host, "roster") or {}; |
c690fa382743
Added some roster management functions
Waqas Hussain <waqas20@gmail.com>
parents:
80
diff
changeset
|
28 |
end]] |
c690fa382743
Added some roster management functions
Waqas Hussain <waqas20@gmail.com>
parents:
80
diff
changeset
|
29 |
|
c690fa382743
Added some roster management functions
Waqas Hussain <waqas20@gmail.com>
parents:
80
diff
changeset
|
30 |
function add_to_roster(roster, jid, item) |
c690fa382743
Added some roster management functions
Waqas Hussain <waqas20@gmail.com>
parents:
80
diff
changeset
|
31 |
roster[jid] = item; |
c690fa382743
Added some roster management functions
Waqas Hussain <waqas20@gmail.com>
parents:
80
diff
changeset
|
32 |
-- TODO implement |
c690fa382743
Added some roster management functions
Waqas Hussain <waqas20@gmail.com>
parents:
80
diff
changeset
|
33 |
end |
c690fa382743
Added some roster management functions
Waqas Hussain <waqas20@gmail.com>
parents:
80
diff
changeset
|
34 |
|
c690fa382743
Added some roster management functions
Waqas Hussain <waqas20@gmail.com>
parents:
80
diff
changeset
|
35 |
function remove_from_roster(roster, jid) |
c690fa382743
Added some roster management functions
Waqas Hussain <waqas20@gmail.com>
parents:
80
diff
changeset
|
36 |
roster[jid] = nil; |
c690fa382743
Added some roster management functions
Waqas Hussain <waqas20@gmail.com>
parents:
80
diff
changeset
|
37 |
-- TODO implement |
c690fa382743
Added some roster management functions
Waqas Hussain <waqas20@gmail.com>
parents:
80
diff
changeset
|
38 |
end |
c690fa382743
Added some roster management functions
Waqas Hussain <waqas20@gmail.com>
parents:
80
diff
changeset
|
39 |
|
103
ebdb7875443e
Fixed: Typos caused by lack of sleep.
Waqas Hussain <waqas20@gmail.com>
parents:
101
diff
changeset
|
40 |
function load_roster(username, host) |
101
c690fa382743
Added some roster management functions
Waqas Hussain <waqas20@gmail.com>
parents:
80
diff
changeset
|
41 |
if hosts[host] and hosts[host].sessions[username] then |
c690fa382743
Added some roster management functions
Waqas Hussain <waqas20@gmail.com>
parents:
80
diff
changeset
|
42 |
local roster = hosts[host].sessions[username].roster; |
c690fa382743
Added some roster management functions
Waqas Hussain <waqas20@gmail.com>
parents:
80
diff
changeset
|
43 |
if not roster then |
103
ebdb7875443e
Fixed: Typos caused by lack of sleep.
Waqas Hussain <waqas20@gmail.com>
parents:
101
diff
changeset
|
44 |
roster = datamanager.load(username, host, "roster") or {}; |
ebdb7875443e
Fixed: Typos caused by lack of sleep.
Waqas Hussain <waqas20@gmail.com>
parents:
101
diff
changeset
|
45 |
hosts[host].sessions[username].roster = roster; |
101
c690fa382743
Added some roster management functions
Waqas Hussain <waqas20@gmail.com>
parents:
80
diff
changeset
|
46 |
end |
c690fa382743
Added some roster management functions
Waqas Hussain <waqas20@gmail.com>
parents:
80
diff
changeset
|
47 |
return roster; |
c690fa382743
Added some roster management functions
Waqas Hussain <waqas20@gmail.com>
parents:
80
diff
changeset
|
48 |
end |
c690fa382743
Added some roster management functions
Waqas Hussain <waqas20@gmail.com>
parents:
80
diff
changeset
|
49 |
error("Attempt to load roster for non-loaded user"); --return nil; |
c690fa382743
Added some roster management functions
Waqas Hussain <waqas20@gmail.com>
parents:
80
diff
changeset
|
50 |
end |
c690fa382743
Added some roster management functions
Waqas Hussain <waqas20@gmail.com>
parents:
80
diff
changeset
|
51 |
|
103
ebdb7875443e
Fixed: Typos caused by lack of sleep.
Waqas Hussain <waqas20@gmail.com>
parents:
101
diff
changeset
|
52 |
function save_roster(username, host) |
101
c690fa382743
Added some roster management functions
Waqas Hussain <waqas20@gmail.com>
parents:
80
diff
changeset
|
53 |
if hosts[host] and hosts[host].sessions[username] and hosts[host].sessions[username].roster then |
c690fa382743
Added some roster management functions
Waqas Hussain <waqas20@gmail.com>
parents:
80
diff
changeset
|
54 |
return datamanager.save(username, host, "roster", hosts[host].sessions[username].roster); |
c690fa382743
Added some roster management functions
Waqas Hussain <waqas20@gmail.com>
parents:
80
diff
changeset
|
55 |
end |
c690fa382743
Added some roster management functions
Waqas Hussain <waqas20@gmail.com>
parents:
80
diff
changeset
|
56 |
return nil; |
0 | 57 |
end |
80
523ac742cc19
Fixed: rostermanager.lua now returns the module
Waqas Hussain <waqas20@gmail.com>
parents:
6
diff
changeset
|
58 |
|
523ac742cc19
Fixed: rostermanager.lua now returns the module
Waqas Hussain <waqas20@gmail.com>
parents:
6
diff
changeset
|
59 |
return _M; |