Tue, 14 Oct 2008 07:20:29 +0500
Fixed: Typos caused by lack of sleep.
Learned: Lua variable assignments are not expressions.
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; |