clix/roster.lua

changeset 62
f455dad33efd
parent 61
7d62bff46601
child 63
bbbef9f4a798
equal deleted inserted replaced
61:7d62bff46601 62:f455dad33efd
36 unsub = function(param) conn:send(verse.presence{to=param, type="unsubscribe"}); end; 36 unsub = function(param) conn:send(verse.presence{to=param, type="unsubscribe"}); end;
37 auth = function(param) conn:send(verse.presence{to=param, type="subscribed"}); end; 37 auth = function(param) conn:send(verse.presence{to=param, type="subscribed"}); end;
38 unauth = function(param) conn:send(verse.presence{to=param, type="unsubscribed"}); end; 38 unauth = function(param) conn:send(verse.presence{to=param, type="unsubscribed"}); end;
39 del = function(param) conn.roster:delete_contact(param) end; 39 del = function(param) conn.roster:delete_contact(param) end;
40 setnick = function(param) 40 setnick = function(param)
41 local jid, nick = param:match("^(%S+)%s+(%S+)"); 41 local jid, nick = param:match("^(%S+)%s+(.+)");
42 local item = conn.roster.items[jid]; 42 local item = conn.roster.items[jid];
43 if not item then print("no jid "..jid); return; end 43 if not item then print("no jid "..jid); return; end
44 conn.roster:add_contact(jid, nick, item.groups or {}, printor("saved")); 44 conn.roster:add_contact(jid, nick, item.groups or {}, printor("saved"));
45 end; 45 end;
46 addgroup = function(param) 46 addgroup = function(param)
47 local jid, group = param:match("^(%S+)%s+(%S+)"); 47 local jid, group = param:match("^(%S+)%s+(.+)");
48 local item = conn.roster.items[jid]; 48 local item = conn.roster.items[jid];
49 local groups = item.groups or {}; 49 local groups = item.groups or {};
50 table.insert(groups, group); 50 table.insert(groups, group);
51 conn.roster:add_contact(jid, item.name, groups, printor("saved")); 51 conn.roster:add_contact(jid, item.name, groups, printor("saved"));
52 end; 52 end;
53 delgroup = function(param) 53 delgroup = function(param)
54 local jid, group = param:match("^(%S+)%s+(%S+)"); 54 local jid, group = param:match("^(%S+)%s+(.+)");
55 local item = conn.roster.items[jid]; 55 local item = conn.roster.items[jid];
56 local groups = item.groups; 56 local groups = item.groups;
57 if not groups then return end; 57 if not groups then return end;
58 for i = 1,#groups do 58 for i = 1,#groups do
59 if groups[i] == group then 59 if groups[i] == group then

mercurial