Skip to content
This repository has been archived by the owner on Jul 17, 2020. It is now read-only.

Listeners

Zirak edited this page May 10, 2013 · 2 revisions

Listeners are commands only with "looser" syntax; i.e. they are matched against regular expressions. Listeners are invoked by simply omitting the / command prefix:

!!give me a lick

Where the !! is the Invocation Pattern (see main, subject to change by bot handler. In this wiki, !! is assumed). The general form being:

!!text

Easy, right?

Okay, let's move on to listing

The Listeners

This wiki assumes (for demonstration purposes) that your username is Dave, your user-id is 5318008 and the message you sent has an id of 42.

## help
regexp: /^help(?: (\S+))?/
!!help [command]

Fetches documentation for given command, or general help article. Synonym of /help [command]

## laws
regexp: /^tell (me (your|the) )?(rule|law)s/
!!tell me your laws

Prints out the laws which the bot must follow.

## lick
regexp: /^give (.+?) a lick/
!!give target a lick

Licks target. I have a feeling target will taste like grapes.

## define
regexp: /^what(?:'s|'re)?\s(?:(?:is|are)\s)?(?:(?:an|a)\s)?([\w\s\-]+)\??/
!!what's a subject?
regexp: /^define\s(?:(?:an|a)\s)?([\w\s\-]+)/
!!define subject

Synonym for /define subject.

## personality These are Easter-egg-ish. Use with caution and discretion.
regexp: /thank(s| you)/
regexp: /sorry/
regexp: /bitch/
## cowsay
regexp: /cow(think|say)\s(?:([eT])=(.{0,2})\s)?(?:([eT])=(.{0,2})\s)?(.+)/
!!cowsay moooo

An implementation of cowsay. Available arguments are e=xx and T=xx for eyes and tongue respectively. Cowthink is also included and accepts the same arguments..

!!cowthink mooo
!!cowsay e=@@ T=UU
!!cowthink mooo?
## firefly
regexp: /(which |what |give me a )?firefly( episode)?/i
!!give me a firefly

Gives you a Firefly episode to watch. If you did not explicitly tell it to give you an episode, you may also get the movie.

!!which firefly episode
@Dave Episode 11 - Trash
!!which firefly
@Dave Serenity (movie)
## nudge
regexp: /(?:nudge|remind|poke)\s(?:me\s)?(?:in\s)?(\d+m?)\s?(.*)$/
!!nudge in 20 get the pizza out

Synonym for /nudge interval message.

## substitution
regexp: /^\s*s(\/|\|)((?:(?:\\\1)|[^\1])*?)\1((?:(?:\\\1)|[^\1])*?)\1(g?i?)/
!!s/pattern/replacement/flags

Performs a substitution on a message matching pattern. The replacement is done with replacement.replace. In case the world burns and mdn goes down, here are the special patterns you can use in replacement (to grab stuff from the capture):

Pattern Meaning
$n The nth capturing group ($1, $2, $3, ...)
$& The entire match
$` The substring preceding the match
$' The substring following the match
$$ A literal dollar sign
foo is the bar
!! s/foo(.*)bar/blorg$1blarg/
@Dave blorg is the blarg

my panties are on fire
!! s/.+/$& and they smell like toast/
@Dave my panties are on fire and they smell like toast

Note: This listener works on the DOM of the bot's window. That means that it'll only work on messages which are on the same main window as the bot's.

## winded weasel An old, jaded weasel which helps you make life decisions. ### choosing
regexp: /^\s*(choose|should)?.*\sor\s[^$]/i
!!a or b or c

Beckon the weasel choose an option for you. Options are delimited by the word or. Surprise.

!!should I stay or should I go?
@Dave You should stay
### questions
regexp: /\b(am|are|can|could|do|does|is|may|might|shall|should|will|would)\b/i
!!does this dress make me look fat?

Ask the weasel to enlighten your question with a (sort-of) yes/no answer.

!!will I die tomorrow?
@Dave All signs point to yes.
Clone this wiki locally