examples/room_priv.lua
author Myhailo Danylenko <isbear@ukrpost.net>
Thu, 26 Feb 2009 01:05:02 +0200
changeset 9 c2517f8bf647
parent 8 fc9060b9b7cc
child 34 8206d7cb1447
permissions -rw-r--r--
Enum completion type * small improvements around * built-in completion types made enum
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
8
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     1
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     2
-- ROOM NICK COMPLETION
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     3
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     4
room_cid = main.command ( 'priv',
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     5
	function ( args )
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     6
		main.run ( 'room privmsg ' .. args )
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     7
	end, {} )
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     8
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     9
commands_help['priv'] = "nick message\n\nSends private message to room participant. Nick completion available! ;)"
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    10
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    11
registered_nicks = {}
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    12
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    13
function register_nicks ()
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    14
	for k, nick in pairs ( registered_nicks ) do
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    15
		main.del_completion ( room_cid, nick )
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    16
	end
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    17
	local buddy = main.current_buddy ()
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    18
	if buddy then
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    19
		local info = main.buddy_info ( buddy )
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    20
		if info then
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    21
			registered_nicks = { }
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    22
			if info.type == 'room' then
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    23
				for nick, k in pairs ( info.resources ) do
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    24
					main.add_completion ( room_cid, nick )
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    25
					table.insert ( registered_nicks, nick )
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    26
				end
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    27
			end
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    28
		end
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    29
	end
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    30
end
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    31
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    32
main.run ( 'bind 338 = lua main.run ( "roster down" ); register_nicks ()' )
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    33
main.run ( 'bind 339 = lua main.run ( "roster up" ); register_nicks ()' )
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    34
9
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    35
hooks_d['hook-quit'].room_priv =
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    36
	function ( args )
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    37
		main.run ( 'bind 338 = roster down' )
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    38
		main.run ( 'bind 339 = roster up' )
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    39
	end
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    40
8
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    41
-- vim: se ts=4: --