Limnoria/plugins/Alias
James McCoy f5df6695c0 Alias: Restore recursion limit and limit memory use
The (faulty) detection of recursive Aliases was removed in
a656fd0693, claiming that "our nesting
limit will catch issues now."  However, nested Aliases weren't actually
increasing the nesting level.

Actually increasing the nesting level when an alias is executed restores
the intended behavior.  Additionally, limiting the size of the
expanded arguments to an alias prevents exponential growth of memory
usage for certain malicious inputs/aliases.

Signed-off-by: James McCoy <vega.james@gmail.com>
2014-06-09 23:48:41 -04:00
..
__init__.py Change the modeline to use softtabstop instead of tabstop. 2006-02-11 15:52:51 +00:00
config.py Change the modeline to use softtabstop instead of tabstop. 2006-02-11 15:52:51 +00:00
plugin.py Alias: Restore recursion limit and limit memory use 2014-06-09 23:48:41 -04:00
README.txt Alias: Add a useful README 2009-03-15 22:13:42 -04:00
test.py fix alias bug https://sourceforge.net/tracker/?func=detail&aid=2987147&group_id=58965&atid=489447 2010-04-14 22:25:40 -04:00

This plugin allows the user to create various aliases to other commands
or combinations of other commands (via nested commands).  It is a good
idea to always quote the commands that are being aliased so that any
nested commands are not immediately run.

Basic usage
-----------

Add an alias, trout, which expects a word as an argument

<jamessan> @alias add trout "action slaps $1 with a large trout"
<bot> jamessan: The operation succeeded.
<jamessan> @trout me
* bot slaps me with a large trout

Add an alias, lastfm, which expects a last.fm user and replies with
their recently played items.

@alias add lastfm "rss [format concat http://ws.audioscrobbler.com/1.0/user/ [format concat [urlquote $1] /recenttracks.rss]]"

Note that if the nested commands being aliased hadn't been quoted, then
those commands would have been run immediately, and @lastfm would always
reply with the same information, the result of those commands.