author | Myhailo Danylenko <isbear@ukrpost.net> |
Sat, 30 Jul 2016 05:04:35 +0300 | |
changeset 153 | 8fba61f363a8 |
parent 109 | 2d2111cb5109 |
permissions | -rw-r--r-- |
8 | 1 |
|
2 |
-- ROOM NICK COMPLETION |
|
3 |
||
73
b3ebfb8eb798
De-hardcode room priv bindings, take first
Myhailo Danylenko <isbear@ukrpost.net>
parents:
34
diff
changeset
|
4 |
-- global |
109
2d2111cb5109
Switch to object-based command handling
Myhailo Danylenko <isbear@ukrpost.net>
parents:
99
diff
changeset
|
5 |
room_cid = main.add_category () |
2d2111cb5109
Switch to object-based command handling
Myhailo Danylenko <isbear@ukrpost.net>
parents:
99
diff
changeset
|
6 |
main.command ( 'priv', |
8 | 7 |
function ( args ) |
8 |
main.run ( 'room privmsg ' .. args ) |
|
109
2d2111cb5109
Switch to object-based command handling
Myhailo Danylenko <isbear@ukrpost.net>
parents:
99
diff
changeset
|
9 |
end, false, room_cid ) |
8 | 10 |
|
11 |
commands_help['priv'] = "nick message\n\nSends private message to room participant. Nick completion available! ;)" |
|
12 |
||
73
b3ebfb8eb798
De-hardcode room priv bindings, take first
Myhailo Danylenko <isbear@ukrpost.net>
parents:
34
diff
changeset
|
13 |
local registered_nicks = {} |
8 | 14 |
|
73
b3ebfb8eb798
De-hardcode room priv bindings, take first
Myhailo Danylenko <isbear@ukrpost.net>
parents:
34
diff
changeset
|
15 |
-- global, used in binding |
b3ebfb8eb798
De-hardcode room priv bindings, take first
Myhailo Danylenko <isbear@ukrpost.net>
parents:
34
diff
changeset
|
16 |
function room_priv_register_nicks () |
8 | 17 |
for k, nick in pairs ( registered_nicks ) do |
18 |
main.del_completion ( room_cid, nick ) |
|
19 |
end |
|
20 |
local buddy = main.current_buddy () |
|
21 |
if buddy then |
|
22 |
local info = main.buddy_info ( buddy ) |
|
23 |
if info then |
|
24 |
registered_nicks = { } |
|
25 |
if info.type == 'room' then |
|
26 |
for nick, k in pairs ( info.resources ) do |
|
27 |
main.add_completion ( room_cid, nick ) |
|
28 |
table.insert ( registered_nicks, nick ) |
|
29 |
end |
|
30 |
end |
|
31 |
end |
|
32 |
end |
|
33 |
end |
|
34 |
||
73
b3ebfb8eb798
De-hardcode room priv bindings, take first
Myhailo Danylenko <isbear@ukrpost.net>
parents:
34
diff
changeset
|
35 |
-- XXX |
74
9d1d5939ac9f
Typo and regex fix for room_priv
Myhailo Danylenko <isbear@ukrpost.net>
parents:
73
diff
changeset
|
36 |
local room_priv_pattern = "roster%s+.+" |
73
b3ebfb8eb798
De-hardcode room priv bindings, take first
Myhailo Danylenko <isbear@ukrpost.net>
parents:
34
diff
changeset
|
37 |
local room_priv_restore = {} |
b3ebfb8eb798
De-hardcode room priv bindings, take first
Myhailo Danylenko <isbear@ukrpost.net>
parents:
34
diff
changeset
|
38 |
for key, binding in pairs ( main.binding () ) do |
b3ebfb8eb798
De-hardcode room priv bindings, take first
Myhailo Danylenko <isbear@ukrpost.net>
parents:
34
diff
changeset
|
39 |
if binding:match ( room_priv_pattern ) then |
b3ebfb8eb798
De-hardcode room priv bindings, take first
Myhailo Danylenko <isbear@ukrpost.net>
parents:
34
diff
changeset
|
40 |
room_priv_restore[key] = binding |
74
9d1d5939ac9f
Typo and regex fix for room_priv
Myhailo Danylenko <isbear@ukrpost.net>
parents:
73
diff
changeset
|
41 |
main.binding ( key, ('lua main.run ( %q ); room_priv_register_nicks ()'):format ( binding ) ) |
73
b3ebfb8eb798
De-hardcode room priv bindings, take first
Myhailo Danylenko <isbear@ukrpost.net>
parents:
34
diff
changeset
|
42 |
end |
b3ebfb8eb798
De-hardcode room priv bindings, take first
Myhailo Danylenko <isbear@ukrpost.net>
parents:
34
diff
changeset
|
43 |
end |
8 | 44 |
|
99
ed4676536ed9
Update most useful scripts
Myhailo Danylenko <isbear@ukrpost.net>
parents:
74
diff
changeset
|
45 |
main.hook ( 'hook-lua-quit', |
9 | 46 |
function ( args ) |
73
b3ebfb8eb798
De-hardcode room priv bindings, take first
Myhailo Danylenko <isbear@ukrpost.net>
parents:
34
diff
changeset
|
47 |
for key, binding in pairs ( room_priv_restore ) do |
b3ebfb8eb798
De-hardcode room priv bindings, take first
Myhailo Danylenko <isbear@ukrpost.net>
parents:
34
diff
changeset
|
48 |
main.binding ( key, binding ) |
b3ebfb8eb798
De-hardcode room priv bindings, take first
Myhailo Danylenko <isbear@ukrpost.net>
parents:
34
diff
changeset
|
49 |
end |
99
ed4676536ed9
Update most useful scripts
Myhailo Danylenko <isbear@ukrpost.net>
parents:
74
diff
changeset
|
50 |
end ) |
9 | 51 |
|
8 | 52 |
-- vim: se ts=4: -- |