author | Myhailo Danylenko <isbear@ukrpost.net> |
Wed, 31 Mar 2010 00:12:21 +0300 | |
changeset 97 | b00f9ce82016 |
parent 68 | 742878c74b8e |
child 99 | ed4676536ed9 |
permissions | -rw-r--r-- |
44
bd66956cd397
Disco and remote in new way
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
1 |
|
68
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
2 |
local lm = require 'lm' |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
3 |
local remote = require 'lm.remote' |
44
bd66956cd397
Disco and remote in new way
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
4 |
|
68
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
5 |
main.command ( 'remote', |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
6 |
function ( args ) |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
7 |
local who |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
8 |
if args.t then |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
9 |
who = args.t |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
10 |
else |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
11 |
who = main.full_jid () |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
12 |
end |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
13 |
local action = args[1] |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
14 |
local conn = lm.connection.bless ( main.connection () ) |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
15 |
if action then |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
16 |
remote.command ( conn, who, action, |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
17 |
function ( form, submit, reject ) |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
18 |
if not form then |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
19 |
main.print_info ( who, ('Command %s completed'):format ( action ) ) |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
20 |
else |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
21 |
insert_form ( form, -- XXX |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
22 |
function ( form ) |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
23 |
submit ( form, |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
24 |
function () |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
25 |
main.print_info ( who, ('Command %s completed'):format ( action ) ) |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
26 |
end, |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
27 |
function ( mesg ) |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
28 |
main.print_info ( who, ('Command %s execution failed: %s'):format ( action, mesg ) ) |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
29 |
end ) |
49 | 30 |
end, |
68
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
31 |
function ( form ) |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
32 |
reject ( form, |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
33 |
function () |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
34 |
main.print_info ( who, ('Command %s execution cancelled'):format ( action ) ) |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
35 |
end, |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
36 |
function ( mesg ) |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
37 |
main.print_info ( who, ('Command %s execution cancellation failed: %s'):format ( action, mesg ) ) |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
38 |
end ) |
49 | 39 |
end ) |
68
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
40 |
end |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
41 |
end, |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
42 |
function ( mesg ) |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
43 |
main.print_info ( who, ('Command %s execution failed: %s'):format ( action, mesg ) ) |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
44 |
end ) |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
45 |
else |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
46 |
remote.list ( conn, who, |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
47 |
function ( items ) |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
48 |
local text = '' |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
49 |
for index, item in ipairs ( items ) do |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
50 |
text = text .. '\n - ' .. item.node |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
51 |
end |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
52 |
if text ~= '' then |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
53 |
main.print_info ( who, 'Available commands:' .. text ) |
49 | 54 |
else |
68
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
55 |
main.print_info ( who, 'No commands available.' ) |
49 | 56 |
end |
68
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
57 |
end, |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
58 |
function ( mesg ) |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
59 |
main.print_info ( who, ("Remote commands list for %s failed: %s"):format ( who, mesg ) ) |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
60 |
end ) |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
61 |
end |
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
62 |
end, true, 'jid' ) |
44
bd66956cd397
Disco and remote in new way
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
63 |
|
68
742878c74b8e
Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
67
diff
changeset
|
64 |
commands_help['remote'] = "[-t target_jid] [remote_command]\n\nPrints list of available remote command or requests execution of specified command." |
44
bd66956cd397
Disco and remote in new way
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
65 |
|
bd66956cd397
Disco and remote in new way
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
66 |
-- vim: se ts=4: -- |