-- READONLY
-- public functions:
-- * readonly
-- * readwrite
-- * toggle_readonly
-- * readonly_jids
-- FIXME:
-- * does not work, as mcabber ignores hook retval on hook-message-out
-- TODO:
-- * more accessors (merge storage with marking?)
-- * commands?
local readonly_db = {}
function readonly ( jid )
if ( not jid ) or ( jid == '.' ) then
jid = main.current_buddy ()
end
if jid then
readonly_db [ jid ] = true
end
end
function readwrite ( jid )
if ( not jid ) or ( jid == '.' ) then
jid = main.current_buddy ()
end
if jid then
readonly_db [ jid ] = nil
end
end
function toggle_readonly ( jid )
if ( not jid ) or ( jid == '.' ) then
jid = main.current_buddy ()
end
if jid then
if readonly_db [ jid ] then
readwrite ( jid )
else
readonly ( jid )
end
end
end
function readonly_jids ()
local result = {}
for jid in pairs ( readonly_db ) do
table.insert ( result, jid )
end
return result
end
main.hook ( 'hook-message-out',
function ( args )
if readonly_db [ args.jid ] then
main.print_info ( args.jid, "Readonly JID, message dropped." )
return 'drop'
else
return 'proceed'
end
end )
-- vim: se ts=4 sw=4: --