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.

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

!botops revoke

Requests the bot remove channel operator status from itself.

!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 delete <name>

!flaggroup remove <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

!google

Requires  I

Syntax

!google <search>

Returns a message with a link to a google search result

!help

Requires  S

!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 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 <imported name>

Accepts a held imported entry as correct

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

!maxlag

Requires  I

Syntax

!maxlag

Returns the maximum replication lag on the channel's MediaWiki instance

!message

Requires  C or  c

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

!part

Requires  M or  c

Syntax

!part

!part <channel>

Leaves the current channel

Leaves the specified channel

!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

!shorten

Requires  S

Aliases:
  • !shorturl
  • !isgd
  • !hmbim
Syntax

!shorten <url>

Shortens the provided URL

!silence

Requires  c or  C

Syntax

!silence enable

Enables silent mode for the current channel

!silence disable

Disables silent mode for the current channel

!time

Requires  S

Synopsis

Returns the current UTC date and time

Aliases:
  • !date

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

!welcomer

Requires  c or  C

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

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.

!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