--- a/examples/mc_evil.lua Sat Mar 28 19:43:12 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,110 +0,0 @@
-
-local lm = require 'lm'
-local evil = require 'evil'
-
-evil.handler (
- function ( mess )
- local evillevel = tonumber(main.option ( 'lua_evil_sensibility' ))
- local mtype, smtype = mess:type ()
- if evillevel > 1 then
- main.print_info ( mess:attribute ( 'from' ), 'Evil stanza of type ' .. mtype .. '.' .. smtype .. ' detected!' )
- elseif evillevel > 0 then
- print ( 'Tainted by evil stanza of type ' .. mtype .. '.' .. smtype .. ' from ' .. ( mess:attribute ( 'from' ) or '... unknown in black' ) )
- end
- return main.yesno ( main.option ( 'lua_filter_evil' ) )
- end )
-
-local stat2xmpp = {
- free = 'chat',
- online = '',
- away = 'away',
- dnd = 'dnd',
- notavail = 'xa',
- offline = 'unavailable',
-}
-
--- TODO improve interface, check if we sending right thing for offline
-main.command ( 'evil',
- function ( args )
- local conn = lm.connection.bless ( main.connection () )
- if args[1] == 'status' then
- local text = ''
- for i, mesg in ipairs ( args ) do
- if i > 2 then
- text = text .. ' ' .. mesg
- end
- end
- local st = stat2xmpp[args[2]]
- if not st then
- st = ''
- end
- evil.presence ( conn, args.t, st, text:sub ( 2 ) )
- else
- local text = ''
- if args[1] == 'message' then
- for i, mesg in ipairs ( args ) do
- if i > 1 then
- text = text .. ' ' .. mesg
- end
- end
- else
- for i, mesg in ipairs ( args ) do
- text = text .. ' ' .. mesg
- end
- end
- local mtype = 'chat'
- if args.k then
- mtype = args.k
- end
- local who
- if args.t then
- who = args.t
- else
- who = main.current_buddy ()
- end
- evil.message ( conn, who, mtype, text:sub ( 2 ) )
- end
- end, true )
-
-commands_help['evil'] = "[-t jid] [status stat [message] | [-k message_type] [message] message]\n\nSends evil message or presence.\nmessage_type may be chat, normal, headline.\nNote, that for now it will not change mcabber's status."
-
-local evil_handler = lm.message_handler.new ( evil.stanza_handler )
-local evil_handler_registered = false
-
-hooks_d['hook-post-connect'].evil =
- function ( args )
- lm.connection.bless( main.connection () ):handler ( evil_handler, 'iq', 'first' )
- lm.connection.bless( main.connection () ):handler ( evil_handler, 'message', 'first' )
- lm.connection.bless( main.connection () ):handler ( evil_handler, 'presence', 'first' )
- evil_handler_registered = true
- hooks_d['hook-post-connect'].evil = nil
- hooks_d['hook-quit'].evil =
- function ( args )
- if evil_handler_registered then
- lm.connection.bless( main.connection () ):handler ( evil_handler, 'iq' )
- lm.connection.bless( main.connection () ):handler ( evil_handler, 'message' )
- lm.connection.bless( main.connection () ):handler ( evil_handler, 'presence' )
- end
- end
- end
-
-local char2xmpp = {
- f = 'chat',
- o = '',
- a = 'away',
- d = 'dnd',
- n = 'xa',
- _ = 'unavailable',
-}
-
--- hack, but working ;)
-hooks_d['hook-my-status-change'].evil =
- function ( args )
- if main.yesno ( main.option ( 'lua_evil_mode' ) ) then
- evil.presence ( lm.connection.bless ( main.connection () ), nil, char2xmpp[args.new_status], args.message )
- end
- end
-
-main.add_feature ( 'http://jabber.org/protocol/evil' )
-
--- vim: se ts=4: --