equal
deleted
inserted
replaced
|
1 |
|
2 -- READONLY |
|
3 |
|
4 -- public functions: |
|
5 -- * readonly |
|
6 -- * readwrite |
|
7 -- * toggle_readonly |
|
8 -- * readonly_jids |
|
9 -- FIXME: |
|
10 -- * does not work, as mcabber ignores hook retval on hook-message-out |
|
11 -- TODO: |
|
12 -- * more accessors (merge storage with marking?) |
|
13 -- * commands? |
|
14 |
|
15 local readonly_db = {} |
|
16 |
|
17 function readonly ( jid ) |
|
18 if ( not jid ) or ( jid == '.' ) then |
|
19 jid = main.current_buddy () |
|
20 end |
|
21 if jid then |
|
22 readonly_db [ jid ] = true |
|
23 end |
|
24 end |
|
25 |
|
26 function readwrite ( jid ) |
|
27 if ( not jid ) or ( jid == '.' ) then |
|
28 jid = main.current_buddy () |
|
29 end |
|
30 if jid then |
|
31 readonly_db [ jid ] = nil |
|
32 end |
|
33 end |
|
34 |
|
35 function toggle_readonly ( jid ) |
|
36 if ( not jid ) or ( jid == '.' ) then |
|
37 jid = main.current_buddy () |
|
38 end |
|
39 if jid then |
|
40 if readonly_db [ jid ] then |
|
41 readwrite ( jid ) |
|
42 else |
|
43 readonly ( jid ) |
|
44 end |
|
45 end |
|
46 end |
|
47 |
|
48 function readonly_jids () |
|
49 local result = {} |
|
50 for jid in pairs ( readonly_db ) do |
|
51 table.insert ( result, jid ) |
|
52 end |
|
53 return result |
|
54 end |
|
55 |
|
56 main.hook ( 'hook-message-out', |
|
57 function ( args ) |
|
58 if readonly_db [ args.jid ] then |
|
59 main.print_info ( args.jid, "Readonly JID, message dropped." ) |
|
60 return 'drop' |
|
61 else |
|
62 return 'proceed' |
|
63 end |
|
64 end ) |
|
65 |
|
66 -- vim: se ts=4 sw=4: -- |