examples/mcabberrc.lua
author Myhailo Danylenko <isbear@ukrpost.net>
Wed, 25 Feb 2009 22:58:34 +0200
changeset 8 fc9060b9b7cc
parent 7 eb6d89bf1fbf
child 9 c2517f8bf647
permissions -rw-r--r--
Completion * commands completion * common hooks lua interface * complete separation of features into modules
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     1
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     2
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     3
--[[
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     4
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     5
DESCRIPTION
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     6
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     7
This is a demo config file to show, what you can do with lua.
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     8
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     9
Feature list:
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    10
XEP-0004 Forms parsing and filling
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    11
XEP-0030 Info/items discovery requests (mcabber already can do replies)
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    12
XEP-0047 In-Bound Byte Streams (sending, receiving, saving with specified name, rejecting)
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    13
XEP-0077 In-Band Registration (only registration, but with data forms too)
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    14
XEP-0146 Remote commands requests
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    15
Jobs (actions, fired when some event occurs, now in one file, updated on exit)
8
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
    16
Room nicks completion
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    17
MPD status polling (can be turned off)
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    18
Beep on all messages, even on chatroom ones
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    19
Url saving to file (for urlview)
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    20
Transported buddies availability indication
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    21
Actions on multiple marked buddies
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    22
Fallback commands (localized also! :) )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    23
Help for fallback commands (well, I know, that it can be done with mcabber's help system, but it requires access to system files...)
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    24
All features have native mcabber interface
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    25
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    26
REQUIREMENTS
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    27
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    28
liblua-loudmouth (lm.lua and loudmouth.so)
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    29
liblua-socket - mpd
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    30
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    31
NOTES
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    32
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    33
Most hooks get one incoming parameter - hash table with some fields in it.
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    34
This allows further extending and adding arguments without breaking
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    35
previous implementations.
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    36
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    37
Ibb uses own iq handler. This is the laziest way to implement this.
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    38
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    39
BUILTINS
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    40
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    41
print (global) - prints to log
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    42
dofile (global) - loads lua file from default mcabber location
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    43
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    44
main methods:
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    45
- run           - run literal mcabber command
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    46
- beep          - beep
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    47
- log           - print to log w/specified priority
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    48
- print_info    - print info into specified buffer
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    49
- config_file   - format full file name from relative to mcabber's config dir
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    50
- status        - get current user status and message
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    51
- roster        - get list of roster jids (rooms, buddies and agents)
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    52
- current_buddy - get jid of current buddy
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    53
- buddy_info    - get table with info about jid and its resources
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    54
- connection    - get lightuserdata for mcabber's lm connection
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    55
- timer         - run function periodically
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    56
- bgread        - run command and read it's output in background
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    57
- add_feature   - add string to feature list (for disco#info)
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    58
- del_feature   - delete string from feature list
7
eb6d89bf1fbf Commands and init improvements
Myhailo Danylenko <isbear@ukrpost.net>
parents: 6
diff changeset
    59
- command       - adds/removes mcabber command
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    60
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    61
--]]
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    62
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    63
-- This is a hack to allow loading of lm.lua and loudmouth.so from ~/.mcabber
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    64
-- instead of installing them system-wide
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    65
package.path = main.config_file ( '?.lua' ) .. ';' .. package.path
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    66
package.cpath = main.config_file ( '?.so' ) .. ';' .. package.cpath
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    67
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    68
require 'lm'
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    69
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    70
8
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
    71
-- COMMON SUPPORT ROUTINES
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    72
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    73
function shell_escape ( str )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    74
	if str then
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    75
		return "'" .. str:gsub ( "'", "'\\''" ) .. "'"
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    76
	else
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    77
		return "''"
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    78
	end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    79
end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    80
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    81
-- This is for debugging purposes, for real reloading need to quote and bracket keys.
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    82
function table_to_string ( tab, pre )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    83
	local prefix = pre or ""
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    84
	local tbls, jk = "", ""
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    85
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    86
	for key, val in pairs ( tab ) do
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    87
		if type ( val ) == 'table' then
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    88
			tbls = string.format ( "%s  %s%s = %s,\n", tbls, prefix, tostring(key), table_to_string ( val, "  " .. prefix ) )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    89
		else
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    90
			jk = string.format ( "%s %s = %q,", jk, tostring(key), tostring(val) )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    91
		end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    92
	end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    93
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    94
	if tbls == "" then
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    95
		return string.format ( "{%s }", jk:sub ( 1, -2 ) )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    96
	else
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    97
		return string.format ( "{%s\n%s%s}", jk, tbls, prefix )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    98
	end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    99
end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   100
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   101
-- XXX to C?
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   102
function full_current_jid ()
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   103
	local jid = main.current_buddy ()
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   104
	if jid then
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   105
		local info = main.buddy_info ( jid )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   106
		local prio, resource = 0
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   107
		for res, par in pairs ( info.resources ) do
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   108
			if prio <= par.priority then
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   109
				resource = res
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   110
				prio = par.priority
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   111
			end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   112
		end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   113
		if resource then
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   114
			return jid .. '/' .. resource
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   115
		else
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   116
			return jid
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   117
		end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   118
	else
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   119
		return nil
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   120
	end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   121
end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   122
6
90dceae3ed1f Hooks unification
Myhailo Danylenko <isbear@ukrpost.net>
parents: 5
diff changeset
   123
function online ( jid )
90dceae3ed1f Hooks unification
Myhailo Danylenko <isbear@ukrpost.net>
parents: 5
diff changeset
   124
	local info = main.buddy_info ( jid )
90dceae3ed1f Hooks unification
Myhailo Danylenko <isbear@ukrpost.net>
parents: 5
diff changeset
   125
	if not info then
90dceae3ed1f Hooks unification
Myhailo Danylenko <isbear@ukrpost.net>
parents: 5
diff changeset
   126
		return false
90dceae3ed1f Hooks unification
Myhailo Danylenko <isbear@ukrpost.net>
parents: 5
diff changeset
   127
	end
90dceae3ed1f Hooks unification
Myhailo Danylenko <isbear@ukrpost.net>
parents: 5
diff changeset
   128
	for resource, params in pairs ( info.resources ) do
90dceae3ed1f Hooks unification
Myhailo Danylenko <isbear@ukrpost.net>
parents: 5
diff changeset
   129
		if params.status ~= '_' then
90dceae3ed1f Hooks unification
Myhailo Danylenko <isbear@ukrpost.net>
parents: 5
diff changeset
   130
			return true
90dceae3ed1f Hooks unification
Myhailo Danylenko <isbear@ukrpost.net>
parents: 5
diff changeset
   131
		end
90dceae3ed1f Hooks unification
Myhailo Danylenko <isbear@ukrpost.net>
parents: 5
diff changeset
   132
	end
90dceae3ed1f Hooks unification
Myhailo Danylenko <isbear@ukrpost.net>
parents: 5
diff changeset
   133
	return false
90dceae3ed1f Hooks unification
Myhailo Danylenko <isbear@ukrpost.net>
parents: 5
diff changeset
   134
end
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   135
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   136
function yesno ( value )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   137
	if value == 'enable' or value == 'yes' or value == 'true' or value == 'on' or value == true then
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   138
		return true
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   139
	elseif value == 'disable' or value == 'no' or value == 'false' or value == 'off' or value == false then
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   140
		return false
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   141
	else
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   142
		return nil
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   143
	end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   144
end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   145
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   146
-- FIXME: eats spaces
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   147
function parse_args ( args )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   148
	local ret = {}
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   149
	local still_opts = true
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   150
	local optname
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   151
	local option = false
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   152
	for word in args:gmatch ( "%S+" ) do
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   153
		if still_opts and not option and word:sub ( 1, 1 ) == '-' then
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   154
			option = true
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   155
			optname = word:sub ( 2 )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   156
		elseif option then
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   157
			ret[optname] = word
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   158
			option = false
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   159
		else
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   160
			still_opts = false
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   161
			table.insert ( ret, word )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   162
		end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   163
	end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   164
	return ret
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   165
end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   166
8
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   167
-- FIXME: get rid of this
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   168
function rebuild_args_string ( tab )
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   169
	local flags = nil
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   170
	local args = nil
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   171
	for k, v in pairs (tab) do
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   172
		if type (k) == 'number' then
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   173
			if args then
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   174
				args = args .. ' ' .. v
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   175
			else
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   176
				args = v
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   177
			end
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   178
		else
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   179
			if flags then
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   180
				flags = flags .. ' ' .. '-' .. k .. ' ' .. v
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   181
			else
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   182
				flags = '-' .. k .. ' ' .. v
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   183
			end
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   184
		end
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   185
	end
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   186
	if flags and args then
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   187
		return flags .. ' ' .. args
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   188
	elseif flags then
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   189
		return flags
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   190
	elseif args then
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   191
		return args
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   192
	else
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   193
		return ''
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   194
	end
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   195
end
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   196
6
90dceae3ed1f Hooks unification
Myhailo Danylenko <isbear@ukrpost.net>
parents: 5
diff changeset
   197
-- COMMANDS
90dceae3ed1f Hooks unification
Myhailo Danylenko <isbear@ukrpost.net>
parents: 5
diff changeset
   198
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   199
-- Help strings should not contain command, only arguments. This is necessary to support soft aliases.
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   200
commands_help = {
7
eb6d89bf1fbf Commands and init improvements
Myhailo Danylenko <isbear@ukrpost.net>
parents: 6
diff changeset
   201
	post      = "filename\n\nSends file as a message. Just shorthand.",
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   202
	s         = "status [message]\n\nSets your status, but takes into account mpd (if enabled).",
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   203
	beep      = "[enable|disable|on|off|yes|no|true|false]\n\nEnables or disables beeping on all messages.\nIf state is omitted, prints current state.",
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   204
	cmd       = "shell_command\n\nRuns shell command in background and sends output to current buddy.\nWorks asynchroneously, and may break long output in the middle of line",
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   205
	exthelp   = "[command]\n\nPrints help for a given command, or list of available help topics.",
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   206
	reload    = "\n\nJust a shorthand to reload lua config file. Note, that for now this discards all changes to configuration, open forms, transferred files.",
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   207
	['join!'] = "\n\nForcibly joins to current buddy. Just saves you typing of full room name (that can be quite long) in a case of a non-bookmarked rooms.",
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   208
	count     = "\n\nPrints number of resources of current buddy. Useful to determine member count of large room."
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   209
}
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   210
7
eb6d89bf1fbf Commands and init improvements
Myhailo Danylenko <isbear@ukrpost.net>
parents: 6
diff changeset
   211
main.command ( 'post',
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   212
	function ( args )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   213
		main.run ( 'say_to -f ' .. args .. ' .' )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   214
	end )
7
eb6d89bf1fbf Commands and init improvements
Myhailo Danylenko <isbear@ukrpost.net>
parents: 6
diff changeset
   215
main.command ( 's',
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   216
	function ( args )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   217
		main.run ( ('status %s %s'):format ( args, mpd_getstatus () ) )
8
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   218
	end, 0x10 )
7
eb6d89bf1fbf Commands and init improvements
Myhailo Danylenko <isbear@ukrpost.net>
parents: 6
diff changeset
   219
main.command ( 'cmd',
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   220
	function ( args )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   221
		local to = main.current_buddy ()
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   222
		main.run ( ('send_to -q %q $ %s'):format ( to, args ) )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   223
		main.bgread ( args,
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   224
			function ( data )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   225
				if data then
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   226
					main.run ( ('send_to -q %q %s'):format ( to, data ) )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   227
					return true
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   228
				else
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   229
					return false
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   230
				end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   231
			end )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   232
	end )
7
eb6d89bf1fbf Commands and init improvements
Myhailo Danylenko <isbear@ukrpost.net>
parents: 6
diff changeset
   233
main.command ( 'exthelp',
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   234
	function ( args )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   235
		if commands_help[args] then
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   236
			print ( "\n /" .. args .. ' ' .. commands_help[args] )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   237
		else
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   238
			print ( "No help for this command." )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   239
			list = "Help available for commands: "
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   240
			for k in pairs (commands_help) do
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   241
				list = list .. k .. ', '
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   242
			end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   243
			print ( list:sub ( 1, -3 ) )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   244
			print ( "For built-in mcabber commands see /help" )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   245
		end
8
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   246
	end, 0x1 )
7
eb6d89bf1fbf Commands and init improvements
Myhailo Danylenko <isbear@ukrpost.net>
parents: 6
diff changeset
   247
main.command ( 'reload',
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   248
	function ( args )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   249
		dofile ( main.config_file ( 'mcabberrc.lua' ) )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   250
	end )
7
eb6d89bf1fbf Commands and init improvements
Myhailo Danylenko <isbear@ukrpost.net>
parents: 6
diff changeset
   251
main.command ( 'join!',
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   252
	function ( args )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   253
		main.run ( 'room join ' .. main.current_buddy () )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   254
	end )
7
eb6d89bf1fbf Commands and init improvements
Myhailo Danylenko <isbear@ukrpost.net>
parents: 6
diff changeset
   255
main.command ( 'count',
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   256
	function ( args )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   257
		local count = 0
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   258
		for resource in pairs ( main.buddy_info ( main.current_buddy () ).resources ) do
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   259
			count = count + 1
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   260
		end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   261
		print ( "Resource count: " .. count )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   262
	end )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   263
8
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   264
-- commands to allow leading smileys
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   265
for k, arg in ipairs ( { ')', '/', '(', 'D', '-/', 'S', '1', ']', '[' } ) do
7
eb6d89bf1fbf Commands and init improvements
Myhailo Danylenko <isbear@ukrpost.net>
parents: 6
diff changeset
   266
	main.command ( arg,
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   267
		function ( args )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   268
			main.run ( 'say :' .. arg .. ' ' .. args )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   269
		end )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   270
end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   271
8
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   272
-- HOOKS
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   273
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   274
hooks_d = {
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   275
	['hook-message-in']       = { },
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   276
	['hook-message-out']      = { },
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   277
	['hook-status-change']    = { },
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   278
	['hook-my-status-change'] = { },
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   279
	['hook-post-connect']     = { },
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   280
	['hook-pre-disconnect']   = { },
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   281
	['hook-start']            = { },
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   282
	['hook-quit']             = { },
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   283
}
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   284
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   285
-- hook:
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   286
-- - hook-message-in
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   287
--   jid
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   288
--   groupchat
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   289
--   message
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   290
-- - hook-message-out
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   291
--   jid
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   292
--   message
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   293
-- - hook-status-change
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   294
--   jid
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   295
--   resource
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   296
--   new_status
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   297
--   old_status
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   298
--   message
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   299
-- - hook-my-status-change
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   300
--   new_status
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   301
--   message
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   302
-- - hook-post-connect
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   303
-- - hook-pre-disconnect
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   304
-- - hook-start
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   305
-- - hook-quit
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   306
function hook_handler ( args )
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   307
	for mod, cb in pairs ( hooks_d[args.hook] ) do
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   308
		if cb then
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   309
			cb ( args )
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   310
		end
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   311
	end
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   312
end
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   313
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   314
-- SAVING URLS TO FILE
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   315
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   316
dopath 'urls'
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   317
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   318
-- TRANSPORTED BUDDIES AVAILABILITY INDICATION
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   319
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   320
dopath 'transports'
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   321
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   322
-- BEEPING ON ALL MESSAGES
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   323
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   324
dopath 'beep'
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   325
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   326
-- MARKING
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   327
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   328
dopath 'marking'
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   329
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   330
-- MPD
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   331
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   332
dopath 'mpd'
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   333
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   334
-- FORMS (XEP-0004)
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   335
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   336
dopath 'xep0004'
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   337
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   338
-- DISCO (XEP-0030)
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   339
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   340
dopath 'xep0030'
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   341
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   342
-- IBB (XEP-0047)
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   343
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   344
dopath 'xep0047'
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   345
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   346
-- IN-BAND REGISTRATION (XEP-0077)
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   347
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   348
dopath 'xep0077'
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   349
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   350
-- REMOTE CONTROLLING CLIENTS (XEP-0146)
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   351
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   352
dopath 'xep0146'
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   353
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   354
-- JOBS
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   355
8
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   356
dopath 'jobs'
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   357
8
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   358
-- ROOM NICK COMPLETION
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   359
8
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   360
dopath 'room_priv'
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   361
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   362
-- The End -- vim: se ts=4: --