examples/room_priv.lua
author Myhailo Danylenko <isbear@ukrpost.net>
Mon, 16 Mar 2009 18:54:16 +0200
changeset 34 8206d7cb1447
parent 9 c2517f8bf647
child 73 b3ebfb8eb798
permissions -rw-r--r--
Args auto-parsing, use main.binding
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 )
34
8206d7cb1447 Args auto-parsing, use main.binding
Myhailo Danylenko <isbear@ukrpost.net>
parents: 9
diff changeset
     7
	end, false, {} )
8
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
34
8206d7cb1447 Args auto-parsing, use main.binding
Myhailo Danylenko <isbear@ukrpost.net>
parents: 9
diff changeset
    32
room_priv_pgup_action = main.binding ( '338' )
8206d7cb1447 Args auto-parsing, use main.binding
Myhailo Danylenko <isbear@ukrpost.net>
parents: 9
diff changeset
    33
room_priv_pgdn_action = main.binding ( '339' )
8206d7cb1447 Args auto-parsing, use main.binding
Myhailo Danylenko <isbear@ukrpost.net>
parents: 9
diff changeset
    34
main.binding ( '338', ('lua main.run ( %q ); register_nicks ()'):format ( room_priv_pgup_action ) )
8206d7cb1447 Args auto-parsing, use main.binding
Myhailo Danylenko <isbear@ukrpost.net>
parents: 9
diff changeset
    35
main.binding ( '339', ('lua main.run ( %q ); register_nicks ()'):format ( room_priv_pgdn_action ) )
8
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    36
9
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    37
hooks_d['hook-quit'].room_priv =
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    38
	function ( args )
34
8206d7cb1447 Args auto-parsing, use main.binding
Myhailo Danylenko <isbear@ukrpost.net>
parents: 9
diff changeset
    39
		main.binding ( '338', room_priv_pgup_action )
8206d7cb1447 Args auto-parsing, use main.binding
Myhailo Danylenko <isbear@ukrpost.net>
parents: 9
diff changeset
    40
		main.binding ( '339', room_priv_pgdn_action )
9
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    41
	end
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    42
8
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    43
-- vim: se ts=4: --