examples/evil.lua
author Myhailo Danylenko <isbear@ukrpost.net>
Mon, 23 Mar 2009 09:22:04 +0200
changeset 63 423555c07763
parent 62 fb81aeb45e00
child 64 bf7521ed96eb
permissions -rw-r--r--
Evil configurability improvements and fixes
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
62
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     1
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     2
-- MALICIOUS STANZAS (XEP-0076)
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     3
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     4
-- FIXME for now we only can send evil messages
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     5
--       also we cannot detect stream-level evil :(
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     6
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     7
-- library
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     8
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     9
require 'lm'
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    10
require 'iq'
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    11
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    12
-- public
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    13
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    14
evil = {
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    15
	handler =
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    16
		function ( mess )
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    17
			return false
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    18
		end,
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    19
}
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    20
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    21
function evil.message ( conn, to, mtype, message )
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    22
	conn:send ( lm.message.create { mtype = 'message-' .. mtype, to = to,
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    23
			body = { message },
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    24
			evil = { xmlns = 'http://jabber.org/protocol/evil' },
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    25
		} )
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    26
end
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    27
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    28
function evil.presence ( conn, to, status, message )
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    29
	local mtype = 'presence-available'
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    30
	if status == 'unavailable' then
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    31
		mtype = 'presence-unavailable'
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    32
		status = ''
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    33
	end
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    34
	conn:send ( lm.message.create { mtype = mtype, from = conn:jid (), to = to,
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    35
			show   = { status },
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    36
			status = { message },
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    37
			evil   = { xmlns = 'http://jabber.org/protocol/evil' },
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    38
		} )
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    39
end
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    40
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    41
-- private
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    42
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    43
local evil_incoming_stanza_handler = lm.message_handler.new (
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    44
	function ( conn, mess )
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    45
		local e = mess:child ( 'evil' )
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    46
		if e and e:attribute ( 'xmlns' ) == 'http://jabber.org/protocol/evil' then
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    47
			return evil.handler ( mess )
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    48
		end
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    49
	end )
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    50
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    51
-- mcabber
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    52
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    53
evil.handler =
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    54
	function ( mess )
63
423555c07763 Evil configurability improvements and fixes
Myhailo Danylenko <isbear@ukrpost.net>
parents: 62
diff changeset
    55
		local evillevel = tonumber(main.option ( 'lua_evil_sensibility' ))
62
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    56
		local mtype, smtype = mess:type ()
63
423555c07763 Evil configurability improvements and fixes
Myhailo Danylenko <isbear@ukrpost.net>
parents: 62
diff changeset
    57
		if evillevel > 1 then
423555c07763 Evil configurability improvements and fixes
Myhailo Danylenko <isbear@ukrpost.net>
parents: 62
diff changeset
    58
			main.print_info ( mess:attribute ( 'from' ), 'Evil stanza of type "' .. mtype .. ' ' .. smtype .. '" detected!' )
423555c07763 Evil configurability improvements and fixes
Myhailo Danylenko <isbear@ukrpost.net>
parents: 62
diff changeset
    59
		elseif evillevel > 0 then
423555c07763 Evil configurability improvements and fixes
Myhailo Danylenko <isbear@ukrpost.net>
parents: 62
diff changeset
    60
			print ( 'Tainted by evil stanza of type "' .. mtype .. ' ' .. smtype .. '" from ' .. ( mess:attribute ( 'from' ) or '... unknown in black' ) )
423555c07763 Evil configurability improvements and fixes
Myhailo Danylenko <isbear@ukrpost.net>
parents: 62
diff changeset
    61
		end
62
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    62
		return main.yesno ( main.option ( 'lua_filter_evil' ) )
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    63
	end
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    64
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    65
local stat2xmpp = {
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    66
	free     = 'chat',
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    67
	online   = '',
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    68
	away     = 'away',
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    69
	dnd      = 'dnd',
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    70
	notavail = 'xa',
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    71
	offline  = 'unavailable',
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    72
}
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    73
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    74
-- TODO improve interface, check if we sending right thing for offline
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    75
main.command ( 'evil',
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    76
	function ( args )
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    77
		local conn = lm.connection.bless ( main.connection () )
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    78
		if args[1] == 'status' then
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    79
			local text = ''
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    80
			for i, mesg in ipairs ( args ) do
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    81
				if i > 2 then
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    82
					text = text .. ' ' .. mesg
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    83
				end
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    84
			end
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    85
			local st = stat2xmpp[args[2]]
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    86
			if not st then
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    87
				st = ''
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    88
			end
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    89
			evil.presence ( conn, args.t, st, text:sub ( 2 ) )
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    90
		else
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    91
			local text = ''
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    92
			if args[1] == 'message' then
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    93
				for i, mesg in ipairs ( args ) do
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    94
					if i > 1 then
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    95
						text = text .. ' ' .. mesg
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    96
					end
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    97
				end
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    98
			else
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    99
				for i, mesg in ipairs ( args ) do
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   100
					text = text .. ' ' .. mesg
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   101
				end
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   102
			end
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   103
			local mtype = 'chat'
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   104
			if args.k then
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   105
				mtype = args.k
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   106
			end
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   107
			local who
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   108
			if args.t then
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   109
				who = args.t
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   110
			else
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   111
				who = main.current_buddy ()
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   112
			end
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   113
			evil.message ( conn, who, mtype, text:sub ( 2 ) )
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   114
		end
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   115
	end, true )
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   116
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   117
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."
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   118
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   119
local evil_handler_registered = false
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   120
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   121
hooks_d['hook-post-connect'].evil =
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   122
	function ( args )
63
423555c07763 Evil configurability improvements and fixes
Myhailo Danylenko <isbear@ukrpost.net>
parents: 62
diff changeset
   123
		lm.connection.bless( main.connection () ):handler ( evil_incoming_stanza_handler, 'iq',       'first' )
423555c07763 Evil configurability improvements and fixes
Myhailo Danylenko <isbear@ukrpost.net>
parents: 62
diff changeset
   124
		lm.connection.bless( main.connection () ):handler ( evil_incoming_stanza_handler, 'message',  'first' )
423555c07763 Evil configurability improvements and fixes
Myhailo Danylenko <isbear@ukrpost.net>
parents: 62
diff changeset
   125
		lm.connection.bless( main.connection () ):handler ( evil_incoming_stanza_handler, 'presence', 'first' )
62
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   126
		evil_handler_registered = true
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   127
		hooks_d['hook-post-connect'].evil = nil
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   128
		hooks_d['hook-quit'].evil =
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   129
			function ( args )
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   130
				if evil_handler_registered then
63
423555c07763 Evil configurability improvements and fixes
Myhailo Danylenko <isbear@ukrpost.net>
parents: 62
diff changeset
   131
					lm.connection.bless( main.connection () ):handler ( evil_incoming_stanza_handler, 'iq'       )
423555c07763 Evil configurability improvements and fixes
Myhailo Danylenko <isbear@ukrpost.net>
parents: 62
diff changeset
   132
					lm.connection.bless( main.connection () ):handler ( evil_incoming_stanza_handler, 'message'  )
62
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   133
					lm.connection.bless( main.connection () ):handler ( evil_incoming_stanza_handler, 'presence' )
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   134
				end
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   135
			end
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   136
	end
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   137
63
423555c07763 Evil configurability improvements and fixes
Myhailo Danylenko <isbear@ukrpost.net>
parents: 62
diff changeset
   138
local char2xmpp = {
423555c07763 Evil configurability improvements and fixes
Myhailo Danylenko <isbear@ukrpost.net>
parents: 62
diff changeset
   139
	f = 'chat',
423555c07763 Evil configurability improvements and fixes
Myhailo Danylenko <isbear@ukrpost.net>
parents: 62
diff changeset
   140
	o = '',
423555c07763 Evil configurability improvements and fixes
Myhailo Danylenko <isbear@ukrpost.net>
parents: 62
diff changeset
   141
	a = 'away',
423555c07763 Evil configurability improvements and fixes
Myhailo Danylenko <isbear@ukrpost.net>
parents: 62
diff changeset
   142
	d = 'dnd',
423555c07763 Evil configurability improvements and fixes
Myhailo Danylenko <isbear@ukrpost.net>
parents: 62
diff changeset
   143
	n = 'xa',
423555c07763 Evil configurability improvements and fixes
Myhailo Danylenko <isbear@ukrpost.net>
parents: 62
diff changeset
   144
	_ = 'unavailable',
423555c07763 Evil configurability improvements and fixes
Myhailo Danylenko <isbear@ukrpost.net>
parents: 62
diff changeset
   145
}
423555c07763 Evil configurability improvements and fixes
Myhailo Danylenko <isbear@ukrpost.net>
parents: 62
diff changeset
   146
423555c07763 Evil configurability improvements and fixes
Myhailo Danylenko <isbear@ukrpost.net>
parents: 62
diff changeset
   147
-- hack, but working ;)
423555c07763 Evil configurability improvements and fixes
Myhailo Danylenko <isbear@ukrpost.net>
parents: 62
diff changeset
   148
hooks_d['hook-my-status-change'].evil =
423555c07763 Evil configurability improvements and fixes
Myhailo Danylenko <isbear@ukrpost.net>
parents: 62
diff changeset
   149
	function ( args )
423555c07763 Evil configurability improvements and fixes
Myhailo Danylenko <isbear@ukrpost.net>
parents: 62
diff changeset
   150
		if main.yesno ( main.option ( 'lua_evil_mode' ) ) then
423555c07763 Evil configurability improvements and fixes
Myhailo Danylenko <isbear@ukrpost.net>
parents: 62
diff changeset
   151
			evil.presence ( lm.connection.bless ( main.connection () ), nil, char2xmpp[args.new_status], args.message )
423555c07763 Evil configurability improvements and fixes
Myhailo Danylenko <isbear@ukrpost.net>
parents: 62
diff changeset
   152
		end
423555c07763 Evil configurability improvements and fixes
Myhailo Danylenko <isbear@ukrpost.net>
parents: 62
diff changeset
   153
	end
423555c07763 Evil configurability improvements and fixes
Myhailo Danylenko <isbear@ukrpost.net>
parents: 62
diff changeset
   154
62
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   155
main.add_feature ( 'http://jabber.org/protocol/evil' )
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   156
fb81aeb45e00 Vcard and Evil
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   157
-- vim: se ts=4: --