Limnoria/plugins/Aka
Valentin Lorentz 63eb6672ea Revert generic 'The Limnoria Contributors' in copyright notices
This commit reverts db7ef3f025
(though it keeps the year updates)

After discussion with several people, it seems better to mention
copyright owners explicitly. eg. https://reuse.software/faq/#vcs-copyright
explains the issue of using VCSs to track copyright.

As db7ef3f025 only replaced mentions
of my name with 'The Limnoria Contributors', this commit only needs
to undo that + add one person who contributed to setup.py.
2021-10-17 09:57:55 +02:00
..
local Aka: First commit. 2013-07-23 21:02:06 +02:00
locales Fix msgfmt warnings. 2020-03-26 22:10:28 +01:00
README.rst all plugins: regenerate READMEs 2021-04-22 00:29:15 +02:00
__init__.py Revert generic 'The Limnoria Contributors' in copyright notices 2021-10-17 09:57:55 +02:00
config.py Revert generic 'The Limnoria Contributors' in copyright notices 2021-10-17 09:57:55 +02:00
messages.pot Squashed commit of the following: 2014-12-20 14:37:27 +01:00
plugin.py Revert generic 'The Limnoria Contributors' in copyright notices 2021-10-17 09:57:55 +02:00
test.py Revert generic 'The Limnoria Contributors' in copyright notices 2021-10-17 09:57:55 +02:00

README.rst

Documentation for the Aka plugin for Supybot

Purpose

This plugin allows the user to create various aliases (known as "Akas", since Alias is the name of another plugin Aka is based on) to other commands or combinations of other commands (via nested commands).

Usage

This plugin allows users to define aliases to commands and combinations of commands (via nesting).

Importing from Alias

Add an aka, Alias, which eases the transitioning to Aka from Alias.

First we will load Alias and Aka:

<jamessan> @load Alias
<bot> jamessan: The operation succeeded.
<jamessan> @load Aka
<bot> jamessan: The operation succeeded.

Then we import the Alias database to Aka in case it exists and unload Alias:

<jamessan> @importaliasdatabase
<bot> jamessan: The operation succeeded.
<jamessan> @unload Alias
<bot> jamessan: The operation succeeded.

And now we will finally add the Aka alias itself:

<jamessan> @aka add "alias" "aka $1 $*"
<bot> jamessan: The operation succeeded.

Now you can use Aka as you used Alias before.

Trout

Add an aka, trout, which expects a word as an argument:

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

This trout aka requires the plugin Reply to be loaded since it provides the action command.

LastFM

Add an aka, lastfm, which expects a last.fm username and replies with their most recently played item:

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

This lastfm aka requires the following plugins to be loaded: RSS, Format and Web.

RSS provides rss, Format provides concat and Web provides urlquote.

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.

Commands

add [--channel <#channel>] <name> <command>

Defines an alias <name> that executes <command>. The <command> should be in the standard "command argument [nestedcommand argument]" arguments to the alias; they'll be filled with the first, second, etc. arguments. $1, $2, etc. can be used for required arguments. @1, @2, etc. can be used for optional arguments. $* simply means "all arguments that have not replaced $1, $2, etc.", ie. it will also include optional arguments.

remove [--channel <#channel>] <name>

Removes the given alias, if unlocked.

lock [--channel <#channel>] <alias>

Locks an alias so that no one else can change it.

unlock [--channel <#channel>] <alias>

Unlocks an alias so that people can define new aliases over it.

importaliasdatabase takes no arguments

Imports the Alias database into Aka's, and clean the former.

show [--channel <#channel>] <alias>

This command shows the content of an Aka.

list [--channel <#channel>] [--keys] [--unlocked|--locked]

Lists all Akas defined for <channel>. If <channel> is not specified, lists all global Akas. If --keys is given, lists only the Aka names and not their commands.

set [--channel <#channel>] <name> <command>

Overwrites an existing alias <name> to execute <command> instead. The <command> should be in the standard "command argument [nestedcommand argument]" arguments to the alias; they'll be filled with the first, second, etc. arguments. $1, $2, etc. can be used for required arguments. @1, @2, etc. can be used for optional arguments. $* simply means "all arguments that have not replaced $1, $2, etc.", ie. it will also include optional arguments.

Configuration

supybot.plugins.Aka.maximumWordsInName

This config variable defaults to "5", is not network-specific, and is not channel-specific.

The maximum number of words allowed in a command name. Setting this to an high value may slow down your bot on long commands.

supybot.plugins.Aka.public

This config variable defaults to "True", is not network-specific, and is not channel-specific.

Determines whether this plugin is publicly visible.

supybot.plugins.Aka.web

This is a group of:

supybot.plugins.Aka.web.enable

This config variable defaults to "False", is not network-specific, and is not channel-specific.

Determines whether the Akas will be browsable through the HTTP server.