Commands
This page lists all the commands the Helpmebot currently recognises.
Standard commands
!access
Requires A
Syntax
-
!access grant global <mask> <flaggroup>
-
Grants the specified flag group to the user globally.
-
!access revoke global <mask> <flaggroup>
-
Revokes the specified flag group from the user globally.
This command allows management of the bot's access control by managing which flag groups a user is a member of, as shown on the Access control page.
Masks
This command requires a mask or an account name to apply the flag group change to. The bot will try to interpret what you mean, but it is recommended to either use a plain account name, or a full nick!user@host mask.
- If you wish to apply the change to a NickServ account, simply specify the account name - for example
!access grant global stwalkerster Superuser
- If you wish to apply the change to a nickname, specify
nick!*@*
- for example!access grant global nick!*@* Superuser
. Note that nickname grants are considered insecure. - If you wish to apply the change to a hostname or cloak, specify
*!*@hostname.example.net
Global vs Local
Use the global
modifier to change the user's membership of a group across all channels.
Local access is currently not supported.
!afccount
Requires I
Aliases:
- !afcbacklog
Syntax
-
!afccount
-
Returns the number of AfC submissions awaiting review
!blockinfo
Requires I
Syntax
-
!blockinfo <target>
-
Returns information about active blocks on the provided target
!blockmonitor
Requires C
Syntax
-
!blockmonitor add <channel>
-
Adds monitoring of blocked users joining the specified channel, reporting in the current channel
-
!blockmonitor del <channel>
!blockmonitor delete <channel>
!blockmonitor remove <channel>
-
Removes monitoring of blocked users joining the specified channel, reporting in the current channel
!botops
Requires o
Syntax
-
!botops grant
-
Requests the bot gain channel operator status. Requires ChanServ flag `+o` on the target channel.
-
!botops revoke
-
Requests the bot remove channel operator status from itself.
-
!botops sync <channel>
-
Runs a ChanServ SYNC on the specified channel. Requires ChanServ flag `+R` on the target channel.
Requires O
!categorysize
Requires I
Syntax
-
!categorysize <category>
-
Returns the number of items in the provided category
!contribs
Requires I
Syntax
-
!contribs <username>
-
Returns information on the last contribution for this user
!crosschannel
Requires C
Syntax
-
!crosschannel configure <channel>
-
Sets up cross-channel notifications from the provided channel to this channel.
-
!crosschannel deconfigure
-
Removes cross-channel notification configuration from this channel.
-
!crosschannel notify --enable
!crosschannel notify --disable
-
Enables or disables notifications
-
!crosschannel notifykeyword <keyword>
-
Sets the keyword used for triggering the notification
-
!crosschannel notifymessage <message>
-
Sets the message used for the notification
!curl
Requires P
Syntax
-
!curl
-
Disables all fun commands in the current channel.
!decode
Requires P
Syntax
-
!decode <hex>
-
Decodes a hexadecimal representation of an IP address.
!editcount
Requires I
Aliases:
- !count
Syntax
-
!editcount [username]
-
Returns your edit count or the edit count for the specified user
!fetchall
Requires P
Syntax
-
!fetchall [--all]
-
Returns the current state of all category watchers configured in the current channel.
Use --all to return the current state of all category watchers configured on the bot.
!flaggroup
Requires S
Syntax
-
!flaggroup list
-
Lists the currently configured flag groups
-
!flaggroup add <name> <flags>
!flaggroup create <name> <flags>
-
Adds a new flag group
Requires A
-
!flaggroup modify <name> <flag changes>
-
Modifies the flags on an existing flag group
Requires A
-
!flaggroup set <name> <flags>
-
Sets the flags on an existing flag group
Requires A
-
!flaggroup mode <name> granting|revoking
-
Sets the mode the flag group operates in - either granting flags from a user, or revoking flags from a user.
Requires A
-
!flaggroup delete <name>
!flaggroup remove <name>
!flaggroup del <name>
!flaggroup rm <name>
-
Deletes an existing flag group
Requires A
!forcewelcome
Requires P
Aliases:
- !fwelcome
- !welcomef
Syntax
-
!forcewelcome <nickname>
-
Forces the welcomer to trigger for the provided nickname, giving them the standard welcome message.
!gancount
Requires I
Syntax
-
!gancount
-
Returns the number of GAN submissions awaiting review
Requires I
Syntax
-
!google <search>
-
Returns a message with a link to a google search result
!idlehelpees
Requires P
Syntax
-
!idlehelpees
-
Returns a list of helpees and their in-channel idle time, including the last-active helpers
!idleremove
Requires o
Syntax
-
!idleremove dryrun [nickname...]
-
Produces a list of who will be removed from the channel by the remove command
-
!idleremove remove [nickname...]
-
Removes the listed helpees who have been inactive for more than 15 minutes by the bot's reckoning. Nicknames not eligible are automatically filtered out, but please use the dryrun subcommand to check prior to using this.
!interwiki
Requires C
Synopsis
Manages the bot's list of interwiki prefixes for constructing links.
Aliases:
- !iw
Syntax
-
!interwiki add <interwiki> <url>
!interwiki insert <interwiki> <url>
!interwiki edit <interwiki> <url>
!interwiki update <interwiki> <url>
-
Adds or updates the specified interwiki entry
-
!interwiki delete <interwiki>
!interwiki del <interwiki>
!interwiki rm <interwiki>
!interwiki remove <interwiki>
-
Removes the specified interwiki entry
-
!interwiki import
-
Imports all interwiki prefixes from the active MediaWiki site. Any new entries will be automatically added; any updated or deleted entries will be held for review.
-
!interwiki accept <prefix>
-
Accepts a held modification of an entry as correct
-
!interwiki reject <prefix>
-
Rejects a held modification of an entry
-
!interwiki forgetmissing
-
Removes any markers for interwikis created or missing from the last import.
!ipinfo
Requires P
Aliases:
- !geolocate
- !whois
Syntax
-
!ipinfo <ip>
!ipinfo <hexstring>
!ipinfo <nickname>
-
Returns the controlling organisation and the real-world location for the provided IP address
!join
Requires M
Synopsis
Joins the specified channel
Syntax
-
!join <channel>
-
This command is also usable through an /invite on IRC.
!link
Requires S
Aliases:
- !l
Syntax
-
!link
!link <link>
-
Parses a wikilink or MediaWiki page name and returns a URL for each detected wikilink
If no wikilinks are detected in the argument, the entire argument is treated as a link
If no argument is supplied, the last seen link in the channel is used.
!maxlag
Requires I
Syntax
-
!maxlag
-
Returns the maximum replication lag on the channel's MediaWiki instance
Synopsis
Manages/alters the bot's response strings for hard-coded commands
Aliases:
- !response
Syntax
-
!message set <global|local> <key> <alternate> <line> <value...>
-
Changes a message line for the specified alternate in the database to the provided value, creating new if necessary
-
!message remove <global|local> <key> <alternate> <line>
!message del <global|local> <key> <alternate> <line>
-
Removes the specified alternate message or message line from the database, removing the entire alternate or message from the database if is is the last one.
This command manages the bot's responses in the database, as shown at the Responses page.
Alternates and Lines
Messages are defined under a specific key, and are split twice - firstly into a set of message "alternates", then into a set of "lines". When a message is requested, one alternate will be chosen at random, then all lines in that alternate will be sent.
On the Responses page, alternates are numbered to make it easier to determine which alternate is which.
For the majority of commands, there is a single line in a single alternate, so the alternate
and line
parameters will both be 1
. For example, to modify a message such as brain.command.learn
to the value "I remember!", the following command can be used:
!message set global brain.command.learn 1 1 I remember!
To add a new line or alternate, just specify a number which is larger than the current set - for example, this will add a second alternative to the aforementioned message:
!message set global brain.command.learn 2 1 Saved to database
Removing lines or alternates is similar - just specify the alternate and line to remove. If the removed line is the last line in an alternate, the entire alternate will be removed. If the removed alternate is the last alternate in the message, the entire message will revert to the default value.
!message remove global brain.command.learn 2 1
Global vs Local
Use the global
modifier to change the message across all channels.
Use the local
modifier to change the message just for the current channel.
Please note that there is no differentiation between private messages - a local
change done in private message to the bot will change the message for all private messages for any user. This is for technical reasons - the bot will store the change with it's current nickname as the "channel".
!myflags
Requires S
Aliases:
- !myaccess
- !whoami
!page
Requires I
Syntax
-
!page <page title>
-
Provides basic information on the provided page
!ping
Requires S
Syntax
-
!ping [username]
-
Replies to a ping with a pong
!quit
Requires O
Aliases:
- !die
Syntax
-
!quit <nickname>
-
Shuts down the bot. Provide the bot's nickname to confirm the request
!registration
Requires I
Aliases:
- !reg
- !age
Syntax
-
!registration <username>
-
Returns the registration date and account age of the specified user
!resolve
Requires I
Aliases:
- !dns
Syntax
-
!resolve <ip>
!resolve <hostname>
-
Performs a DNS lookup on the requested address
!reviewstatus
Requires I
Aliases:
- !draftstatus
- !draft
Syntax
-
!reviewstatus <draft>
-
Provides the current status of a draft
!rights
Requires I
Aliases:
- !userrights
Syntax
-
!rights [username]
-
Returns the list of groups you or the specified user currently hold
!track
Requires O
Syntax
-
!track <nickname>
-
Adds a user to tracking
!uncurl
Requires U
Syntax
-
!uncurl
-
Enables all fun commands in the current channel.
!untrack
Requires P
Syntax
-
!untrack <nickname>
-
Prevents the provided nickname from triggering tracking alerts. This safe-listing will only last until they leave the channel, and only gives a reprieve from bot-initiated violence by reducing the user's current score by a large value. Sufficient additional hits will result in the user being added back to tracking.
!uptime
Requires S
Synopsis
Returns the current uptime of the bot
!userinfo
Requires I
Syntax
-
!userinfo [username]
-
Gives a batch of information on the specified user.
!weblogin
Requires S
Syntax
-
!weblogin <token>
-
Completes a login to the web interface.
Synopsis
Manages the on-join welcome message
Syntax
-
!welcomer list
-
Lists all masks configured to be welcomed in this channel
-
!welcomer add [--ignore] <mask>
-
Adds a mask to the welcome list for the current channel.
Use the --ignore flag to make this an exception rule instead of a match rule.
-
!welcomer del [--ignore] <mask>
!welcomer delete [--ignore] <mask>
!welcomer remove [--ignore] <mask>
-
Removes a mask from the welcome list for the current channel.
Use the --ignore flag to remove an exception rule instead of a match rule.
-
!welcomer mode none
!welcomer mode <mode>
!welcomer override none
!welcomer override <mode>
!welcomer overridemode none
!welcomer overridemode <mode>
-
Sets the welcomer override mode
This enables a specific override rule for the welcomer allowing a different welcome message to be used for users matching pre-defined conditions
This command configures the channel welcomer. Any user who has a hostmask on the list (but not on the ignore list) will be greeted with the message at Messages:WelcomeMessage/channel (for example, Message:WelcomeMessage/wikipedia-en-help) on their entry to the channel. As a fallback, it will use Message:WelcomeMessage.
If there are no hostmasks in the list to be welcomed, then nobody will be welcomed.
Brain commands
Commands used to manage the bot's stored responses
!brainedit
Requires b
Synopsis
Edits an existing brain entry by applying a sed-style expression to a message.
Aliases:
- !editbrain
Syntax
-
!brainedit test <keyword> <expression>
!brainedit dryrun <keyword> <expression>
-
Applies the expression to the content of the specified learnt command, and returns the result
Expressions should be in GNU sed substitution format ( s/search/replace/ ), but using .NET-flavour regular expressions. The flags g and i are supported for global matches and case insensitive matches respectively.
For backreferences in the search pattern, use the \1 format. For backreferences in the replacement pattern, use $1 format.
-
!brainedit edit <keyword> <expression>
-
Applies the expression to the content of the specified learnt command as 'test' subcommand, and saves the change to the message.
!forget
Requires b
Syntax
-
!forget <keyword> [keyword...]
-
Removes the provided keywords from the learnt command list.
!learn
Requires b
Aliases:
- !teach
Syntax
-
!learn <keyword> <message>
!learn --action <keyword> <message>
-
Creates a new learnt command invoked by <keyword> to respond with the provided message
Optionally sends message as a CTCP ACTION (aka a /me command) if --action is provided before the first parameter.
@action is accepted in place of --action for backwards compatibility.
Available variables
You may use the following variables in your message:
- Numbered variables such as
{0}
,{1}
, and{2}
may be used to reflect the input passed to Helpmebot with the command. - Numbered variables can also be used like
{1*}
to display everything from parameter{1}
to the end of the input. Note that numbered variables start at 0 so{1}
would be the second word. - URL encoding can be added by specifying
:url
just inside the closing brace, or an approximation of MediaWiki title encoding can be added by specifying:title
just inside the closing brace. For example,{3*:title}
{channel}
is the full name of the current channel.{nickname}!{username}@{hostname}
are three variables that represent the host mask of the user calling the command.{nickname}
is the user's nick in the channel{username}
is also known as "ident" on other IRC servers.{hostname}
this will be the user's cloak if they have one, otherwise it will be the host ISP's name and maybe IPv4 address they are connected from.
ACC commands
Commands used for Wikipedia's ACC process
!acccount
Requires a
Syntax
-
!acccount [username]
-
Provides statistics on the number of ACC requests closed by the provided user
!accdeploy
Requires a
Syntax
-
!accdeploy <branch>
-
Deploys the specified branch to the ACC sandbox environment
!accstats
Requires a
Syntax
-
!accstats [username]
-
Provides information on an ACC user
!accstatus
Requires a
Syntax
-
!accstatus
-
Reports the current status of the ACC tool
Synopsis
Manages AMQP notification delivery to the channel.
Syntax
-
!notifications enable
-
Enables delivery of notifications to this channel. For notifications to actually arrive, they must also be sent to the bot via AMQP.
-
!notifications disable
-
Disables delivery of notifications to this channel
Fun commands
Non-serious commands for non-serious channels. Fun commands can be disabled per-channel using !curl, so these might not be available for use in all channels.
!beer
Requires F
Syntax
-
!beer
!beer <user>
-
Gives a user a beer.
!champagne
Requires F
Syntax
-
!champagne
!champagne <user>
-
Gives a user a more classy drink.
!charge
Requires F
Syntax
-
!charge
!charge <user>
-
Charges up some weaponry
!cluebat
Requires F
Syntax
-
!cluebat
!cluebat <user>
-
Prepares for re-education
!coffee
Requires F
Syntax
-
!coffee
!coffee <user>
-
Gives a user a cup of coffee. Could be hot, could be cold/ice, could be spiked. Unfortunately, we sometimes run out and have to provide tea instead.
!cookie
Requires F
Syntax
-
!cookie
!cookie <user>
-
Gives a user a cookie.
!drink
Requires F
Syntax
-
!drink
!drink <user>
-
Gives user a drink.
!electrocute
Requires F
Syntax
-
!electrocute
!electrocute <user>
-
High voltages tend to be dangerous...
!exorcise
Requires F
Syntax
-
!exorcise
!exorcise <user>
-
Purges demons and other system background services
!hotchocolate
Requires F
Aliases:
- !hotchoc
Syntax
-
!hotchocolate
!hotchocolate <user>
-
Gives a user a hot chocolate.
!icecream
Requires F
Syntax
-
!icecream
!icecream <user>
-
Provides a frozen treat
!minnow
Requires F
Syntax
-
!minnow
!minnow <user>
-
For when a trout is too much
!nuke
Requires F
Syntax
-
!nuke
!nuke <user>
-
Probably overkill.
!pat
Requires F
Syntax
-
!pat
!pat <user>
-
Pats a user
!pie
Requires F
Syntax
-
!pie
!pie <user>
-
Target practice?
!pillow
Requires F
Aliases:
- !pillowfight
Syntax
-
!pillow
!pillow <user>
-
That thing you rest your head on? Yeah, that.
!salmon
Requires F
Syntax
-
!salmon
!salmon <user>
-
A more up-market version of a trout.
!sayhi
Requires F
Syntax
-
!sayhi
-
Bot AI: Says hi to the person who called the command.
!soda
Requires F
Syntax
-
!soda
!soda <user>
-
Provides a soft drink to a user
!tea
Requires F
Syntax
-
!tea
!tea <user>
-
Provides a fresh cup of tea to a user
!trout
Requires F
Syntax
-
!trout
!trout <user>
-
THWACK!
!whale
Requires F
Syntax
-
!whale
!whale <user>
-
For when a simple trout just isn't enough...
!whistle
Requires F
Syntax
-
!whistle
-
Makes the bot whistle a tune
!wine
Requires F
Syntax
-
!wine
!wine <user>
-
Provides a fresh glass of possibly (but probably not) vintage wine
Diagnostic commands
Bot diagnostics and debugging tools
!raw
Requires O
Syntax
-
!raw <IRC protocol message>
-
Injects the specified message directly onto the IRC network socket
!rawctcp
Requires O
Syntax
-
!rawctcp <CTCP command> <destination> [content]
-
Sends a CTCP command to the specified destination
!version
Requires S
Syntax
-
!version [--modules]
-
Provides the current version of the bot and the key libraries