examples/mcabberrc.lua
author Myhailo Danylenko <isbear@ukrpost.net>
Sun, 08 Mar 2009 01:03:22 +0200
changeset 18 ba74a9aadaf4
parent 16 d6d32995832b
child 21 2384ce322282
permissions -rw-r--r--
Fix namespace for config_file
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
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
    34
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    35
BUILTINS
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    36
9
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    37
print (global)   - prints to log/status/logwindow
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    38
dofile (global)  - loads lua file from default mcabber location
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    39
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    40
main methods:
9
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    41
- run            - run literal mcabber command
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    42
- beep           - beep
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    43
- log            - print to log w/specified priority
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    44
- print_info     - print info into specified buffer
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    45
- config_file    - format full file name from relative to mcabber's config dir
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    46
- status         - get current user status and message
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    47
- roster         - get list of roster jids (rooms, buddies and agents)
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    48
- current_buddy  - get jid of current buddy
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    49
- buddy_info     - get table with info about jid and its resources
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    50
- connection     - get lightuserdata for mcabber's lm connection
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    51
- timer          - run function periodically
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    52
- bgread         - run command and read it's output in background
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    53
- add_feature    - add string to feature list (for disco#info)
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    54
- del_feature    - delete string from feature list
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    55
- add_completion - adds word to completions
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    56
- del_completion - removes word from completions
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    57
- command        - adds/removes mcabber command
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    58
- option         - sets/gets mcabber option
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    59
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    60
STRUCTURE
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    61
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    62
To allow your chunk of configuration (eg foo.lua) to play friendly with other, do:
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    63
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    64
- place it into a separate file, eg foo.lua
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    65
- if you need hooks, do 
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    66
  hook_d[hookname].foo = function ( args ) foo ( ) end
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    67
- if you register commands, also do
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    68
  commands_help['foo'] = "arg1 arg2\n\nFoo does bar."
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    69
- append to the end of this file
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    70
  dopath 'foo'
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    71
- try to be friendly to module reloads, eg unregister handlers, where appropriate,
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    72
  reset bindings
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    73
- you can omit unregistering of commands and xmpp features - module will unregister
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    74
  them automatically.
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    75
- for now you can use parse_args and rebuild_args_string to deal with argument string,
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
    76
  but this is likely to be replaced with something more perfect.
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    77
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    78
--]]
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    79
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    80
-- 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
    81
-- instead of installing them system-wide
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    82
package.path = main.config_file ( '?.lua' ) .. ';' .. package.path
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    83
package.cpath = main.config_file ( '?.so' ) .. ';' .. package.cpath
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    84
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    85
require 'lm'
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    86
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    87
8
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
    88
-- COMMON SUPPORT ROUTINES
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    89
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    90
function shell_escape ( str )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    91
	if str then
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    92
		return "'" .. str:gsub ( "'", "'\\''" ) .. "'"
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    93
	else
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    94
		return "''"
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    95
	end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    96
end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    97
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    98
-- 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
    99
function table_to_string ( tab, pre )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   100
	local prefix = pre or ""
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   101
	local tbls, jk = "", ""
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   102
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   103
	for key, val in pairs ( tab ) do
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   104
		if type ( val ) == 'table' then
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   105
			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
   106
		else
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   107
			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
   108
		end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   109
	end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   110
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   111
	if tbls == "" then
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   112
		return string.format ( "{%s }", jk:sub ( 1, -2 ) )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   113
	else
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   114
		return string.format ( "{%s\n%s%s}", jk, tbls, prefix )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   115
	end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   116
end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   117
6
90dceae3ed1f Hooks unification
Myhailo Danylenko <isbear@ukrpost.net>
parents: 5
diff changeset
   118
function online ( jid )
90dceae3ed1f Hooks unification
Myhailo Danylenko <isbear@ukrpost.net>
parents: 5
diff changeset
   119
	local info = main.buddy_info ( jid )
90dceae3ed1f Hooks unification
Myhailo Danylenko <isbear@ukrpost.net>
parents: 5
diff changeset
   120
	if not info then
90dceae3ed1f Hooks unification
Myhailo Danylenko <isbear@ukrpost.net>
parents: 5
diff changeset
   121
		return false
90dceae3ed1f Hooks unification
Myhailo Danylenko <isbear@ukrpost.net>
parents: 5
diff changeset
   122
	end
90dceae3ed1f Hooks unification
Myhailo Danylenko <isbear@ukrpost.net>
parents: 5
diff changeset
   123
	for resource, params in pairs ( info.resources ) do
90dceae3ed1f Hooks unification
Myhailo Danylenko <isbear@ukrpost.net>
parents: 5
diff changeset
   124
		if params.status ~= '_' then
90dceae3ed1f Hooks unification
Myhailo Danylenko <isbear@ukrpost.net>
parents: 5
diff changeset
   125
			return true
90dceae3ed1f Hooks unification
Myhailo Danylenko <isbear@ukrpost.net>
parents: 5
diff changeset
   126
		end
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
	return false
90dceae3ed1f Hooks unification
Myhailo Danylenko <isbear@ukrpost.net>
parents: 5
diff changeset
   129
end
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   130
16
d6d32995832b Use new commands in scripts
Myhailo Danylenko <isbear@ukrpost.net>
parents: 12
diff changeset
   131
boolean_cid = main.add_category { 'enable', 'disable', 'yes', 'no', 'true', 'false', 'on', 'off' }
d6d32995832b Use new commands in scripts
Myhailo Danylenko <isbear@ukrpost.net>
parents: 12
diff changeset
   132
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   133
function yesno ( value )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   134
	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
   135
		return true
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   136
	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
   137
		return false
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   138
	else
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   139
		return nil
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   140
	end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   141
end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   142
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   143
-- FIXME: eats spaces
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   144
function parse_args ( args )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   145
	local ret = {}
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   146
	local still_opts = true
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   147
	local optname
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   148
	local option = false
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   149
	for word in args:gmatch ( "%S+" ) do
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   150
		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
   151
			option = true
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   152
			optname = word:sub ( 2 )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   153
		elseif option then
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   154
			ret[optname] = word
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   155
			option = false
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   156
		else
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   157
			still_opts = false
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   158
			table.insert ( ret, word )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   159
		end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   160
	end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   161
	return ret
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
8
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   164
-- FIXME: get rid of this
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   165
function rebuild_args_string ( tab )
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   166
	local flags = nil
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   167
	local args = nil
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   168
	for k, v in pairs (tab) do
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   169
		if type (k) == 'number' then
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   170
			if args then
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   171
				args = args .. ' ' .. v
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   172
			else
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   173
				args = v
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   174
			end
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
			if flags then
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   177
				flags = flags .. ' ' .. '-' .. k .. ' ' .. v
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
				flags = '-' .. k .. ' ' .. v
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   180
			end
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   181
		end
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   182
	end
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   183
	if flags and args then
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   184
		return flags .. ' ' .. args
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   185
	elseif flags then
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   186
		return flags
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   187
	elseif args then
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   188
		return args
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   189
	else
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   190
		return ''
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   191
	end
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   192
end
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   193
6
90dceae3ed1f Hooks unification
Myhailo Danylenko <isbear@ukrpost.net>
parents: 5
diff changeset
   194
-- COMMANDS
90dceae3ed1f Hooks unification
Myhailo Danylenko <isbear@ukrpost.net>
parents: 5
diff changeset
   195
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   196
-- 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
   197
commands_help = {
7
eb6d89bf1fbf Commands and init improvements
Myhailo Danylenko <isbear@ukrpost.net>
parents: 6
diff changeset
   198
	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
   199
	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
   200
	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
   201
	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
   202
	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
   203
	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
   204
	['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.",
12
a52d61f57e0d Toggle status function
Myhailo Danylenko <isbear@ukrpost.net>
parents: 10
diff changeset
   205
	count     = "\n\nPrints number of resources of current buddy. Useful to determine member count of large room.",
a52d61f57e0d Toggle status function
Myhailo Danylenko <isbear@ukrpost.net>
parents: 10
diff changeset
   206
	toggle    = "\n\nToggles away/online status.",
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   207
}
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   208
7
eb6d89bf1fbf Commands and init improvements
Myhailo Danylenko <isbear@ukrpost.net>
parents: 6
diff changeset
   209
main.command ( 'post',
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   210
	function ( args )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   211
		main.run ( 'say_to -f ' .. args .. ' .' )
9
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
   212
	end, 'filename' )
7
eb6d89bf1fbf Commands and init improvements
Myhailo Danylenko <isbear@ukrpost.net>
parents: 6
diff changeset
   213
main.command ( 's',
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   214
	function ( args )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   215
		main.run ( ('status %s %s'):format ( args, mpd_getstatus () ) )
9
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
   216
	end, 'status' )
7
eb6d89bf1fbf Commands and init improvements
Myhailo Danylenko <isbear@ukrpost.net>
parents: 6
diff changeset
   217
main.command ( 'cmd',
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   218
	function ( args )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   219
		local to = main.current_buddy ()
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   220
		main.run ( ('send_to -q %q $ %s'):format ( to, args ) )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   221
		main.bgread ( args,
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   222
			function ( data )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   223
				if data then
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   224
					main.run ( ('send_to -q %q %s'):format ( to, data ) )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   225
					return true
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   226
				else
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   227
					return false
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   228
				end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   229
			end )
9
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
   230
	end, 'filename' )
7
eb6d89bf1fbf Commands and init improvements
Myhailo Danylenko <isbear@ukrpost.net>
parents: 6
diff changeset
   231
main.command ( 'exthelp',
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   232
	function ( args )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   233
		if commands_help[args] then
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   234
			print ( "\n /" .. args .. ' ' .. commands_help[args] )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   235
		else
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   236
			print ( "No help for this command." )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   237
			list = "Help available for commands: "
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   238
			for k in pairs (commands_help) do
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   239
				list = list .. k .. ', '
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   240
			end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   241
			print ( list:sub ( 1, -3 ) )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   242
			print ( "For built-in mcabber commands see /help" )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   243
		end
9
c2517f8bf647 Enum completion type
Myhailo Danylenko <isbear@ukrpost.net>
parents: 8
diff changeset
   244
	end, 'cmd' )
7
eb6d89bf1fbf Commands and init improvements
Myhailo Danylenko <isbear@ukrpost.net>
parents: 6
diff changeset
   245
main.command ( 'reload',
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   246
	function ( args )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   247
		dofile ( main.config_file ( 'mcabberrc.lua' ) )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   248
	end )
7
eb6d89bf1fbf Commands and init improvements
Myhailo Danylenko <isbear@ukrpost.net>
parents: 6
diff changeset
   249
main.command ( 'join!',
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   250
	function ( args )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   251
		main.run ( 'room join ' .. main.current_buddy () )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   252
	end )
7
eb6d89bf1fbf Commands and init improvements
Myhailo Danylenko <isbear@ukrpost.net>
parents: 6
diff changeset
   253
main.command ( 'count',
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   254
	function ( args )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   255
		local count = 0
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   256
		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
   257
			count = count + 1
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   258
		end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   259
		print ( "Resource count: " .. count )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   260
	end )
12
a52d61f57e0d Toggle status function
Myhailo Danylenko <isbear@ukrpost.net>
parents: 10
diff changeset
   261
main.command ( 'toggle',
a52d61f57e0d Toggle status function
Myhailo Danylenko <isbear@ukrpost.net>
parents: 10
diff changeset
   262
	function ( args )
a52d61f57e0d Toggle status function
Myhailo Danylenko <isbear@ukrpost.net>
parents: 10
diff changeset
   263
		local stat, mess = main.status ()
a52d61f57e0d Toggle status function
Myhailo Danylenko <isbear@ukrpost.net>
parents: 10
diff changeset
   264
		if stat == 'o' then
a52d61f57e0d Toggle status function
Myhailo Danylenko <isbear@ukrpost.net>
parents: 10
diff changeset
   265
			main.run ( 'status away ' .. mess )
a52d61f57e0d Toggle status function
Myhailo Danylenko <isbear@ukrpost.net>
parents: 10
diff changeset
   266
		else
a52d61f57e0d Toggle status function
Myhailo Danylenko <isbear@ukrpost.net>
parents: 10
diff changeset
   267
			main.run ( 'status online ' .. mess )
a52d61f57e0d Toggle status function
Myhailo Danylenko <isbear@ukrpost.net>
parents: 10
diff changeset
   268
		end
a52d61f57e0d Toggle status function
Myhailo Danylenko <isbear@ukrpost.net>
parents: 10
diff changeset
   269
	end )
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   270
8
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   271
-- commands to allow leading smileys
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   272
for k, arg in ipairs ( { ')', '/', '(', 'D', '-/', 'S', '1', ']', '[' } ) do
7
eb6d89bf1fbf Commands and init improvements
Myhailo Danylenko <isbear@ukrpost.net>
parents: 6
diff changeset
   273
	main.command ( arg,
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   274
		function ( args )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   275
			main.run ( 'say :' .. arg .. ' ' .. args )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   276
		end )
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   277
end
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   278
8
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   279
-- HOOKS
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   280
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   281
hooks_d = {
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   282
	['hook-message-in']       = { },
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   283
	['hook-message-out']      = { },
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   284
	['hook-status-change']    = { },
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   285
	['hook-my-status-change'] = { },
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   286
	['hook-post-connect']     = { },
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   287
	['hook-pre-disconnect']   = { },
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   288
	['hook-start']            = { },
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   289
	['hook-quit']             = { },
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   290
}
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   291
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   292
-- hook:
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   293
-- - hook-message-in
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
--   groupchat
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   296
--   message
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   297
-- - hook-message-out
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   298
--   jid
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   299
--   message
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   300
-- - hook-status-change
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   301
--   jid
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   302
--   resource
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   303
--   new_status
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   304
--   old_status
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   305
--   message
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   306
-- - hook-my-status-change
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   307
--   new_status
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   308
--   message
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   309
-- - hook-post-connect
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   310
-- - hook-pre-disconnect
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   311
-- - hook-start
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   312
-- - hook-quit
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   313
function hook_handler ( args )
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   314
	for mod, cb in pairs ( hooks_d[args.hook] ) do
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   315
		if cb then
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   316
			cb ( args )
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   317
		end
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   318
	end
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   319
end
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   320
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   321
-- SAVING URLS TO FILE
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   322
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   323
dopath 'urls'
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   324
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   325
-- TRANSPORTED BUDDIES AVAILABILITY INDICATION
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   326
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   327
dopath 'transports'
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   328
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   329
-- BEEPING ON ALL MESSAGES
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   330
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   331
dopath 'beep'
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   332
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   333
-- MARKING
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   334
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   335
dopath 'marking'
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   336
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   337
-- MPD
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   338
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   339
dopath 'mpd'
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   340
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   341
-- FORMS (XEP-0004)
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   342
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   343
dopath 'xep0004'
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   344
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   345
-- DISCO (XEP-0030)
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   346
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   347
dopath 'xep0030'
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   348
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   349
-- IBB (XEP-0047)
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   350
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   351
dopath 'xep0047'
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   352
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   353
-- IN-BAND REGISTRATION (XEP-0077)
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   354
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   355
dopath 'xep0077'
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   356
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   357
-- REMOTE CONTROLLING CLIENTS (XEP-0146)
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   358
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   359
dopath 'xep0146'
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   360
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   361
-- JOBS
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   362
8
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   363
dopath 'jobs'
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   364
8
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   365
-- ROOM NICK COMPLETION
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   366
8
fc9060b9b7cc Completion
Myhailo Danylenko <isbear@ukrpost.net>
parents: 7
diff changeset
   367
dopath 'room_priv'
5
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   368
cba039bd6f13 Included sample configuration into package
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   369
-- The End -- vim: se ts=4: --