examples/mc_evil.lua
changeset 68 742878c74b8e
parent 67 d33ca5572e91
child 69 ab6d4ee8974c
--- 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: --