-- ROOM NICK COMPLETION
-- global
room_cid = main.add_category ()
main.command ( 'priv',
function ( args )
main.run ( 'room privmsg ' .. args )
end, false, room_cid )
commands_help['priv'] = "nick message\n\nSends private message to room participant. Nick completion available! ;)"
local registered_nicks = {}
-- global, used in binding
function room_priv_register_nicks ()
for k, nick in pairs ( registered_nicks ) do
main.del_completion ( room_cid, nick )
end
local buddy = main.current_buddy ()
if buddy then
local info = main.buddy_info ( buddy )
if info then
registered_nicks = { }
if info.type == 'room' then
for nick, k in pairs ( info.resources ) do
main.add_completion ( room_cid, nick )
table.insert ( registered_nicks, nick )
end
end
end
end
end
-- XXX
local room_priv_pattern = "roster%s+.+"
local room_priv_restore = {}
for key, binding in pairs ( main.binding () ) do
if binding:match ( room_priv_pattern ) then
room_priv_restore[key] = binding
main.binding ( key, ('lua main.run ( %q ); room_priv_register_nicks ()'):format ( binding ) )
end
end
main.hook ( 'hook-lua-quit',
function ( args )
for key, binding in pairs ( room_priv_restore ) do
main.binding ( key, binding )
end
end )
-- vim: se ts=4: --