|
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 |