1
|
1 |
|
|
2 |
[[!toc levels=2]] |
|
3 |
|
|
4 |
# Overview |
|
5 |
|
|
6 |
Starting from version 0.10.0, mcabber supports dynamic loading of modules. It |
|
7 |
introduces the command `/module` with subcommands to load, unload and obtain |
|
8 |
info on modules. This command is allowed during initialization time, so you can |
|
9 |
specify it in your mcabberrc. Modules are searched in the directory specified in |
|
10 |
mcabber variable `modules_dir`, that you should set before issuing these |
|
11 |
commands. Default module installation/loading directory is `/usr/lib/mcabber`. |
|
12 |
|
|
13 |
The API is still experimental and likely to be changed, but there is a short |
|
14 |
HOWTO about writing your own modules in `doc/` subdirectory of mcabber source. |
|
15 |
It contains up-to-date information on module-related routines that mcabber |
|
16 |
offers and some examples. |
|
17 |
|
|
18 |
# Existing modules |
|
19 |
|
|
20 |
Right now the following modules are available (if you know of some other |
|
21 |
modules, feel free to add them to list below): |
|
22 |
|
|
23 |
## antispam |
|
24 |
|
|
25 |
* URL: <https://bitbucket.org/georgri/mcabber-modules/> |
|
26 |
|
|
27 |
Enables simple question-based antispam-bot which asks predefined question to |
|
28 |
every unsubscribed buddy, expecting them to give the right predefined answer. |
|
29 |
Currently you may change the standard question/answer only by changing the |
|
30 |
source code. |
|
31 |
|
|
32 |
## avatar |
|
33 |
|
|
34 |
* URL: <http://isbear.org.ua/hg/isbear/mcabber-avatar/> |
|
35 |
* Homepage: <http://isbear.org.ua/docs/mcabber-avatar/index/> |
|
36 |
* Mirror: <http://hg.lilotux.net/mod-mcabber-avatar/> |
|
37 |
|
|
38 |
This module implements avatar publishing/retrieving via pep/pubsub. It informs |
|
39 |
you when your buddies publish their avatars via pep and provides command |
|
40 |
`/avatar` to publish your own. But this is not all: It also will actually show |
|
41 |
you buddy's avatar! Yes, it is aalib :) |
|
42 |
|
|
43 |
Note: this module should eventually merge with pep (at least partially) |
|
44 |
|
|
45 |
## avv |
|
46 |
|
|
47 |
* URL: <http://isbear.org.ua/hg/isbear/mcabber-avv/> |
|
48 |
* Homepage: <http://isbear.org.ua/docs/mcabber-avv/index/> |
|
49 |
|
|
50 |
Advanced version verification (or something like that, I now cannot recollect |
|
51 |
initial meaning of this abbreviature). Alternative module loading system, that |
|
52 |
allows flexible module compatibility determination. It splits API, provided by |
|
53 |
mcabber into a set of smaller APIs. This allows to omit module update, when |
|
54 |
major API change have not changed used by this module mini-APIs. Also, module |
|
55 |
information is now stored separately, in usual text file, that may be adapted by |
|
56 |
hand to user environment. Fallback legacy module loading scheme is not yet |
|
57 |
implemented :( |
|
58 |
|
|
59 |
## beep |
|
60 |
|
|
61 |
* URL: <http://mcabber.com/hg/> |
|
62 |
|
|
63 |
Simple module to beep on **all** messages. Available in mcabber 0.10.0. Serves the |
|
64 |
purpose of example for module writing HOWTO. |
|
65 |
|
|
66 |
## clock |
|
67 |
|
|
68 |
* URL: <http://hg.lilotux.net/mcabber-modules/> |
|
69 |
|
|
70 |
This module uses the 'info' option to display the date and time in the status |
|
71 |
bar. This module is part of the mcabber-modules repository. |
|
72 |
|
|
73 |
## cmd |
|
74 |
|
|
75 |
* URL: <http://isbear.org.ua/hg/isbear/mcabber-cmd/> |
|
76 |
* Homepage: <http://isbear.org.ua/docs/mcabber-cmd/index/> |
|
77 |
* Mirror: <http://hg.lilotux.net/mod-mcabber-cmd/> |
|
78 |
|
|
79 |
Provides command `/cmd`, that sends output of specified shell command to current buddy. |
|
80 |
|
|
81 |
## commands (custom) |
|
82 |
|
|
83 |
* URL: <https://github.com/hirthwork/mcabber-commands/> |
|
84 |
|
|
85 |
Allows to add commands with dynamic completion lists, based on regexp-matching |
|
86 |
over incoming buddy messages (a bit similar to urlopen). Useful for |
|
87 |
microblogging. |
|
88 |
|
|
89 |
## comment |
|
90 |
|
|
91 |
* URL: <http://hg.lilotux.net/mcabber-modules/> |
|
92 |
|
|
93 |
Trivial module; adds a command `#` to ignore a line. This module is part of the |
|
94 |
mcabber-modules repository. |
|
95 |
|
|
96 |
## disco |
|
97 |
|
|
98 |
* URL: <http://isbear.org.ua/hg/isbear/mcabber-disco/> |
|
99 |
* Homepage: <http://isbear.org.ua/docs/mcabber-disco/index/> |
|
100 |
* Mirror: <http://hg.lilotux.net/mod-mcabber-disco/> |
|
101 |
|
|
102 |
Module adds `/disco` command, that sends service discovery requests. |
|
103 |
|
|
104 |
## env |
|
105 |
|
|
106 |
* URL: <http://isbear.org.ua/hg/isbear/mcabber-env/> |
|
107 |
* Homepage: <http://isbear.org.ua/docs/mcabber-env/index/> |
|
108 |
* Mirror: <http://hg.lilotux.net/mod-mcabber-env/> |
|
109 |
|
|
110 |
Tampering with mcabber's environment. This module can be useful for development |
|
111 |
and debugging, as well as for on-the-fly changing of some parameters, like |
|
112 |
`AAOPTS` for aalib, used in avatar module. Also provides way to change current |
|
113 |
working directory. |
|
114 |
|
|
115 |
## eventcmd |
|
116 |
|
|
117 |
* URL: <http://isbear.org.ua/hg/isbear/mcabber-patches/> |
|
118 |
* Homepage: <http://isbear.org.ua/docs/mcabber-patches/index/> |
|
119 |
* Mirror: <http://hg.lilotux.net/mcabber-experimental/> |
|
120 |
|
|
121 |
Modularization of legacy mcabber eventcmd script. Available in experimental |
|
122 |
version of mcabber. |
|
123 |
|
|
124 |
## eventcmd-ng |
|
125 |
|
|
126 |
* URL: <http://isbear.org.ua/hg/isbear/mcabber-eventcmd-ng/> |
|
127 |
* Homepage: <http://isbear.org.ua/docs/mcabber-eventcmd-ng/index/> |
|
128 |
|
|
129 |
Another approach for eventcmd. It passes arguments to script as environment |
|
130 |
variables, so, you can use `$jid` instead of `$1`. Because of this it is more |
|
131 |
flexible for future changes (see hooks description in HOWTO). Though, it is not |
|
132 |
officially approved new interface for eventcmd - it is only my vision of it. |
|
133 |
|
|
134 |
## extsay |
|
135 |
|
|
136 |
* URL: <http://hg.lilotux.net/mcabber-modules/> |
|
137 |
|
|
138 |
If you use the [screen][] utility, this module will let you open your editor in |
|
139 |
a new screen window, and will send the message once you exit the editor. Check |
|
140 |
the [README][extsay-readme] file! This module is part of the mcabber-modules |
|
141 |
repository. |
|
142 |
|
|
143 |
## fifo |
|
144 |
|
|
145 |
Modularization of mcabber FIFO. Allows recreation of fifo in run-time by |
|
146 |
reloading module. This module has been merged into mcabber development tree |
|
147 |
(0.10.2-dev). |
|
148 |
|
|
149 |
## info_msgcount |
|
150 |
|
|
151 |
* URL: <http://hg.lilotux.net/mcabber-modules/> |
|
152 |
|
|
153 |
Displays the number of unread messages (buffers) in the status bar. This module |
|
154 |
relies on the `info` option, so it cannot be used with the clock module |
|
155 |
described above. This module is part of the mcabber-modules repository. |
|
156 |
|
|
157 |
## ignore_auth |
|
158 |
|
|
159 |
* URL: <http://www.freakysoft.de/repos/mcabber-modules/> |
|
160 |
|
|
161 |
Ignores subscription requests from every jid matching configurable regexs. Adds |
|
162 |
the command ignore_auth to add a regex to the list (`/ignore_auth .*@icq`). The |
|
163 |
option ignore_auth can be used to disable/enable this feature temporily |
|
164 |
(`/set ignore_auth = 1`). This module is part of the forked mcabber-modules |
|
165 |
repository from franky. |
|
166 |
|
|
167 |
## jingle |
|
168 |
|
|
169 |
* URL: <https://github.com/alkino/mcabber-jingle> |
|
170 |
* HG Mirror: <http://hg.lilotux.net/mod-mcabber-jingle/> |
|
171 |
|
|
172 |
Jingle modules written by Alkino during the GSoC 2010. Contains a file transfer |
|
173 |
module (IBB support). |
|
174 |
|
|
175 |
## killpresence |
|
176 |
|
|
177 |
* URL: <http://hg.lilotux.net/mcabber-modules/> |
|
178 |
|
|
179 |
Adds two commands, killpresence and killchatstates, that can be used repectively |
|
180 |
to ignore the current presence from a fulljid (e.g. to kill a "ghost") and to |
|
181 |
reset the chat state status of an online contact. This module is part of the |
|
182 |
mcabber-modules repository. |
|
183 |
|
|
184 |
## lastmsg |
|
185 |
|
|
186 |
* URL: <http://hg.lilotux.net/mcabber-modules/> |
|
187 |
|
|
188 |
Stores highlighted messages received in MUC rooms while you are away. When |
|
189 |
you're back, you can use the command `/lastmsg` you display them. This module is |
|
190 |
part of the mcabber-modules repository. |
|
191 |
|
|
192 |
## lua |
|
193 |
|
|
194 |
* URL: <http://isbear.org.ua/hg/isbear/mcabber-lua/> |
|
195 |
* Homepage: <http://isbear.org.ua/docs/mcabber-lua/index/> |
|
196 |
* Mirror: <http://hg.lilotux.net/mod-mcabber-lua/> |
|
197 |
|
|
198 |
Lua interface module for mcabber. Adds `/lua` command (and much more in example |
|
199 |
scripts). Needs much more work, but already usable. |
|
200 |
|
|
201 |
Example scripts for this module extensively use lua bindings for loudmouth, |
|
202 |
`lua-lm`. It can be found here: |
|
203 |
|
|
204 |
* URL: <http://isbear.org.ua/hg/isbear/lua-lm/> |
|
205 |
* Homepage: <http://isbear.org.ua/docs/lua-lm/index/> |
|
206 |
* Mirror: <http://hg.lilotux.net/lua-lm/> |
|
207 |
|
|
208 |
## marking |
|
209 |
|
|
210 |
* URL: <http://isbear.org.ua/hg/isbear/mcabber-marking/> |
|
211 |
* Homepage: <http://isbear.org.ua/docs/mcabber-marking/index/> |
|
212 |
* Mirror: <http://hg.lilotux.net/mod-mcabber-marking/> |
|
213 |
|
|
214 |
Adds ability to mark several buddies and do some command for each of these |
|
215 |
buddies. Provides commands `/mark` and `/marked`. |
|
216 |
|
|
217 |
## mpd |
|
218 |
|
|
219 |
* URL: <http://isbear.org.ua/hg/isbear/mcabber-mpd/> |
|
220 |
* Homepage: <http://isbear.org.ua/docs/mcabber-mpd/index/> |
|
221 |
|
|
222 |
Provides information about currently playing song for modules like PEP. |
|
223 |
|
|
224 |
## mucignore |
|
225 |
|
|
226 |
* URL: <https://github.com/hirthwork/mcabber-mucignore/> |
|
227 |
|
|
228 |
Simple plugin to ignore users in MUC conferences. |
|
229 |
|
|
230 |
## pep |
|
231 |
|
|
232 |
* URL: <http://isbear.org.ua/hg/isbear/mcabber-pep/> |
|
233 |
* Homepage: <http://isbear.org.ua/docs/mcabber-pep/index/> |
|
234 |
* Mirror: <http://hg.lilotux.net/mod-mcabber-pep/> |
|
235 |
|
|
236 |
Suite of modules to publish and process PEP (Personal Eventing Protocol) tune, |
|
237 |
mood, geoloc and activity events. |
|
238 |
|
|
239 |
## si |
|
240 |
|
|
241 |
Stream initiation (file transfer profile) module. Uses streams module for its |
|
242 |
transfer methods, thus, it now supports both IBB and SOCKS5 Bytestreams. |
|
243 |
Provides command `/si`. |
|
244 |
|
|
245 |
**Note:** Stalled in the process of rewrite/update, contact |
|
246 |
[me](xmpp:isbear@jabber.kiev.ua), if you are interested in picking it up. |
|
247 |
|
|
248 |
## streams |
|
249 |
|
|
250 |
In-Band and SOCKS5 Bytestreams implementation. Adds command `/stream`. It |
|
251 |
supports IBB native session initiation and bare SCOKS5 Bytestream requests and |
|
252 |
can send/receive files this way. Though, this module is, probably, the only |
|
253 |
implementation, that supports such file transfer methods, so you will be unable |
|
254 |
to use this module alone to exchange files with, other clients. However this |
|
255 |
module is designed with ability to be used by other modules as transfer pipe, |
|
256 |
so, there is si/file-transfer module to transfer files in more convenient way. |
|
257 |
This module should be considered still in beta stage, but yet already usable. |
|
258 |
|
|
259 |
**Note:** Stalled in the process of rewrite/update, contact |
|
260 |
[me](xmpp:isbear@jabber.kiev.ua), if you are interested in picking it up. |
|
261 |
|
|
262 |
## templatecmd |
|
263 |
|
|
264 |
* URL: <http://isbear.org.ua/hg/isbear/mcabber-templatecmd/> |
|
265 |
* Homepage: <http://isbear.org.ua/docs/mcabber-templatecmd/index/> |
|
266 |
|
|
267 |
Allows to define alias-like commands with shell-like positional arguments |
|
268 |
substitution. Provides command `/templatecmd`. If you're searching for a way to |
|
269 |
define alias for `/send_to -f <filename_here> .` - this module is for you. |
|
270 |
|
|
271 |
## uptime |
|
272 |
|
|
273 |
* URL: <http://isbear.org.ua/hg/isbear/mcabber-uptime/> |
|
274 |
* Homepage: <http://isbear.org.ua/docs/mcabber-uptime/index/> |
|
275 |
* Mirror: <http://hg.lilotux.net/mod-mcabber-uptime/> |
|
276 |
|
|
277 |
Module to show mcabber uptime. It can either determine full mcabber process |
|
278 |
uptime from linux `/proc` filesystem or just count time from module loading |
|
279 |
moment. |
|
280 |
|
|
281 |
## urlopen |
|
282 |
|
|
283 |
* URL: <http://isbear.org.ua/hg/isbear/mcabber-urlopen/> |
|
284 |
* Homepage: <http://isbear.org.ua/docs/mcabber-urlopen/index/> |
|
285 |
|
|
286 |
Looks for urls in incoming messages and prints them to log and/or calls shell |
|
287 |
command to handle them. |
|
288 |
|
|
289 |
## xttitle |
|
290 |
|
|
291 |
* URL: <http://mcabber.com/hg/> |
|
292 |
|
|
293 |
Displays the number of unread messages in the X Terminal Title. The option |
|
294 |
`xttitle_short_format` can be set to use a very short title. |
|
295 |
|
|
296 |
## yaubil |
|
297 |
|
|
298 |
* URL: <http://isbear.org.ua/hg/isbear/mcabber-yaubil/> |
|
299 |
* Homepage: <http://isbear.org.ua/docs/mcabber-yaubil/index/> |
|
300 |
* Mirror: <http://hg.lilotux.net/mod-mcabber-yaubil/> |
|
301 |
|
|
302 |
Yet Another Useless Built-In Language. Provides `/eval`, `/if`, `/then`, |
|
303 |
`/else`, `/let` and `/multi` commands. Probably most useful amongst them is |
|
304 |
`/multi`. If, breaking my expectations, this module becomes useful and famous |
|
305 |
(presence of beard may cause this), I promise, that I'll improve |
|
306 |
string/parentheses parsing, add loops and maybe even switch to tree-producing |
|
307 |
parser with operators precedence. |
|
308 |
|
|
309 |
# Notes on modules, written by isbear, aka Mykhailo Danylenko |
|
310 |
|
|
311 |
* I use cmake as build system, it allows me to quickly generate debian packages |
|
312 |
(not too accurate, but at least it is package). See README for a brief |
|
313 |
description how to build module. |
|
314 |
* Most modules need more work - to add flexibility, providing mcabber variables, |
|
315 |
that control module behaviour, to check for resource releasing in extreme |
|
316 |
situations, etc. |
|
317 |
* Most modules, that provide some command also include help file for them (in |
|
318 |
English). You may need to adjust variable help_dirs, if you have installed |
|
319 |
module with another prefix than mcabber itself to be able to use this help |
|
320 |
files. |
|
321 |
* Every module contains file modulename.rc (by default it will be installed into |
|
322 |
`<install prefix>/share/doc/libmcabber-<modulename>/`), that contains list of |
|
323 |
all mcabber variables introduced by this module with descriptions and load |
|
324 |
commands, necessary to get this module loaded (i.e. first load commands for |
|
325 |
modules, that are required for this module to work, then load command for this |
|
326 |
module itself). |
|
327 |
* If you have found a bug in module, please contact me by mail or jabber (both |
|
328 |
can be found in README file). |
|
329 |
* Unfortunately, most of the modules are now kinda unmaintained (if you need |
|
330 |
something - ping me, and I'll try to do something about that, but no |
|
331 |
guarantees). Adoption requests are warmly welcomed. |
|
332 |
|
|
333 |
[screen]: http://www.gnu.org/software/screen/ |
|
334 |
[extsay-readme]: http://hg.lilotux.net/mcabber-modules/raw-file/tip/extsay-ng/README |