Firebot: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
No edit summary
 
(17 intermediate revisions by the same user not shown)
Line 1: Line 1:
= Firebot =


* Administrator: byron@glob.com.au
firebot is a bot on irc.mozilla.org.
* Bugzilla Component: [https://bugzilla.mozilla.org/enter_bug.cgi?product=Webtools&component=Mozbot Webtools::Mozbot]


== Modules ==
Channel OPs can use /invite to get firefox to join their channel.


=== Bugzilla ===
* Administrator: [https://mozillians.org/u/glob/ glob] <[mailto:byron@glob.com.au byron@glob.com.au]>
* The Bugzilla module provides an interface to the bugzilla bug database. It will spot anyone mentioning bugs, too, and report on what they are. For example if someone says 'I think that's a dup of bug 5693, the :hover thing', then this module will display information about bug 5693.
* Repository: [https://github.com/globau/firebot github/globau/firebot]
* This module also provides the ability to report on changes to bugs in near real-time in channel. For example "New mozilla.org - CA Certificates bug 123456 filed by someone@example.com"
* Blog : [http://blog.glob.com.au/ blog.glob.com.au]


=== Checkins ===
Firebot is in maintenance mode – while new feature generally are not being added it will continue to run for the foreseeable future.
* The Checkins module monitors version control RSS feeds for new check-ins.
* This feature is planned to be replaced by [https://mozillians.org/en-US/u/glandium/ glandium]'s pulsebot, which listens to commits via [[Auto-tools/Projects/Pulse|pulse]] instead of polling RSS feeds


=== Converter ===
= Modules =
* A generic converter. Currently supports converting between positive integers in binary, octal, decimal and hexidecimal forms, and converting temperatures, lengths, times and masses.


=== Crashstats ===
== Bugzilla ==
* The Bugzilla module provides an interface to the bugzilla bug database
* It will spot anyone mentioning bugs, too, and report on what they are
* eg. If someone says 'I think that's a dup of bug 5693, the :hover thing', then this module will display information about bug 5693
* This module also provides the ability to report on changes to bugs in near real-time in channel
* eg. "New mozilla.org - CA Certificates bug 123456 filed by someone@example.com"
=== bug-total ===
* Same as 'bug' but only displays the total line
=== bugs ===
* A simple DWIM search. Not very clever. ;-)
* Syntax: '<query string> bugs' e.g. 'mozbot bugs'
=== ignore ===
* Causes the bot to stop reporting all bug changes made by a particular user in the current channel
* Syntax: 'ignore <user@domain.com>'
=== unignore ===
* Causes the bot to un-ignore a previously ignored user. See 'ignore' for more details
 
== Checkins ==
* This feature has been replaced by [https://github.com/glandium/pulsebot glandium's pulsebot], which listens for mercurial commits via [[Auto-tools/Projects/Pulse|pulse]] and announces accordingly
 
== Converter ==
* A generic converter
* Currently supports converting between positive integers in binary, octal, decimal and hexidecimal forms, and converting temperatures, lengths, times and masses
* To convert a number, simply give the number with units or appropriate prefixes, for example to convert from hexadecimal: '0x2F'
=== integers ===
* Decimal: Simply give the number
* Hexadecimal: Prefix with 0x
* Octal: Prefix with 0
* Binary: Prefix with 0b
=== temperature ===
* Kelvin: Suffix with K
* Celsius: Suffix with C
* Fahrenheit: Suffix with F
=== length ===
* Imperial: in, ft, yd, mi
* Metric: A, nm, mm, cm, m, km
=== time ===
* ISO time units: year, month, week, day, hour, minute, second
* Exotic time units: millifortnight
=== mass ===
* Imperial: lbs, oz, stone
* Metric: kg, g
 
== Crashstats ==
* Listens in channel for crash stats uuids and responds with a link to the crash.
* Listens in channel for crash stats uuids and responds with a link to the crash.
* eg. "bp-28411feb-90d8-40fc-ab5d-238822140522" --> "https://crash-stats.mozilla.com/report/index/28411feb-90d8-40fc-ab5d-238822140522"
* eg. "bp-28411feb-90d8-40fc-ab5d-238822140522" --> "https://crash-stats.mozilla.com/report/index/28411feb-90d8-40fc-ab5d-238822140522"


=== Currencies ===
== FortuneCookies ==
* This module gets mid-market currency exchange rates from: http://www.xe.com/ucc/full.shtml
* A module to get random fortune cookies
* (not currently working, will disable)
=== cookie ===
* Get a fortune cookie
=== fortune ===
* Same as 'cookie'
=== new ===
* To set a new fortune cookie, say 'new cookie' followed by the text
* eg. 'new cookie: you will have a nice day'
* The string %from% will be replaced by the name of whoever requests the cookie
=== add ===
* Same as 'new'
=== fetch ===
* The command 'fetch cookies from <uri>' will add each line in <uri> to the cookie list
* Cookie lists must start with one line that reads 'DATA FILE: cookies' and must be at most 100 lines long
* Blank lines and lines starting with a hash ('#') are ignored


=== Firebot ===
== General ==
* The firebot module contains random features specific to firebot.
* A module that provides the bot-wide services
** kick for !list !lista !search
=== help ===
** respond to "admin", "who are you", "what is firebot", etc
* Gives information about modules and commands
=== shutup ===
* Tells the bot to stop talking to you


=== FortuneCookies ===
== Greeting ==
* A module to get random fortune cookies.
* A polite module for saying hello and goodbye and so on
=== hi ===
* To greet the bot
=== bye ===
* To say goodbye to the bot
=== ping ===
* To check the bot is alive
=== status ===
* Gives the amount of time that the bot has been active


=== General ===
== Infobot ==
* A module that provides the bot-wide services
* Keeps track of factoids and returns them on request
** help, shutup, ctcpversion
* To set factoids, just tell me something in the form 'apple is a company' or 'apples are fruit'
* To find out about something, say 'apple?' or 'what are apples'
* To correct me, you can use any of: 'no, apple is a fruit', 'apple =~ s/company/fruit/', or 'apple is also a fruit'
* To make me forget a factoid, 'forget apple'
* You can use '|' to separate several alternative answers
=== who ===
* If a definition contains $who, then it will be replaced by the name of the person who asked the question
=== reply ===
* If a definition starts with <reply> then when responding the initial prefix will be skipped
* eg. 'apples are <reply>mm, apples' will mean that 'what are apples' will get the response 'mm, apples'
=== action ===
* If a definition starts with <action> then when responding the definition will be used as an action
* eg. 'apples are <action>eats one' will mean that 'what are apples' will get the response '* bot eats one'
=== alias ===
* If a definition starts with <alias> then it will be treated as a symlink to whatever follows
* eg. 'crab apples are <alias>apples' and 'apples are fruit' will mean that 'what are crab apples' will get the response 'apples are fruit'
=== status ===
* Reports on how many factoids are in the database
=== tell ===
* Make me tell someone something. eg. 'tell pikachu what apples are' or 'tell fred about me'
=== literal ===
* To find out exactly what is stored for an entry apples, you would say to me: literal apples
=== remember ===
* If you are having trouble making me remember something (for example 'well, foo is bar' getting treated as 'foo' is 'bar'), then you can prefix your statement with 'remember:' (following the 'no,' if you are changing an entry)
* eg. 'remember: well, foo is bar'
* Note that 'well, foo?' is treated as 'what is foo' not is 'what is well, foo', so this is not always useful
=== no ===
* To correct an entry, prefix your statement with 'no,'
* eg. 'no, I am good' to correct your entry from 'is bad' to 'is good' :-)
 
== Karma ==
* A karma tracker
=== ++ ===
* Increase someone's karma
* Syntax: victim++
=== -- ===
* Decrease someone's karma
* Syntax: victim--
=== rank ===
* Find someone's karma level
* Omit the victim's name to get a top 10 list
* Syntax: 'rank victim' or just 'rank'
 
== MagicEightBall ==
* The all knowing magic eight ball, in electronic form
=== !8ball ===
* Ask a question and the answer shall be provided
* Syntax: '!8ball: will it happen?


=== Greeting ===
== Parrot ==
* Random greetings, chatter
* This module allows you to make the bot do stuff
=== say ===
* Makes the bot say something
* The <target> can be a person or channel
* Syntax: say <target> <text>
=== do ===
* Makes the bot do (/me) something
* The <target> can be a person or channel
* Syntax: do <target> <text>
=== invite ===
* Makes the bot invite (/invite) somebody to a channel
* Syntax: invite <who> <channel>
=== announce ===
* Makes the bot announce something to every channel in which this module is enabled
* Syntax: announce <text>


=== Infobot ===
== RDF ==
=== Karma ===
* The RDF module monitors various websites
=== MagicEightBall ===
=== Parrot ===
=== RDF ===
=== Seen ===


=== ServicesLogin ===
== Seen ==
* NickServ login
* The Seen module watches channels and stores when someone last spoke or performed an action for later recall
=== seen ===
* Says how long it's been since the last time someone was seen
* Syntax: 'seen <nick>'
* eg. 'seen mozbot'


=== ShutdownHelper ===
== TimeIn ==
* Manages graceful shutdown/reload
=== time in ===
* Tells you the time in the specified location
* Syntax: 'time in <location>'
* eg. 'time in perth'


=== Timezone ===
== UUIDGen ==
=== UUIDGen ===
* This module is an interface to the uuidgen application
=== WWW ===
=== uuid ===
* Generates a UUID
=== cid ===
* Generates a UUID but outputs format suitable for components (CID)

Latest revision as of 03:02, 30 October 2017

firebot is a bot on irc.mozilla.org.

Channel OPs can use /invite to get firefox to join their channel.

Firebot is in maintenance mode – while new feature generally are not being added it will continue to run for the foreseeable future.

Modules

Bugzilla

  • The Bugzilla module provides an interface to the bugzilla bug database
  • It will spot anyone mentioning bugs, too, and report on what they are
  • eg. If someone says 'I think that's a dup of bug 5693, the :hover thing', then this module will display information about bug 5693
  • This module also provides the ability to report on changes to bugs in near real-time in channel
  • eg. "New mozilla.org - CA Certificates bug 123456 filed by someone@example.com"

bug-total

  • Same as 'bug' but only displays the total line

bugs

  • A simple DWIM search. Not very clever. ;-)
  • Syntax: '<query string> bugs' e.g. 'mozbot bugs'

ignore

  • Causes the bot to stop reporting all bug changes made by a particular user in the current channel
  • Syntax: 'ignore <user@domain.com>'

unignore

  • Causes the bot to un-ignore a previously ignored user. See 'ignore' for more details

Checkins

  • This feature has been replaced by glandium's pulsebot, which listens for mercurial commits via pulse and announces accordingly

Converter

  • A generic converter
  • Currently supports converting between positive integers in binary, octal, decimal and hexidecimal forms, and converting temperatures, lengths, times and masses
  • To convert a number, simply give the number with units or appropriate prefixes, for example to convert from hexadecimal: '0x2F'

integers

  • Decimal: Simply give the number
  • Hexadecimal: Prefix with 0x
  • Octal: Prefix with 0
  • Binary: Prefix with 0b

temperature

  • Kelvin: Suffix with K
  • Celsius: Suffix with C
  • Fahrenheit: Suffix with F

length

  • Imperial: in, ft, yd, mi
  • Metric: A, nm, mm, cm, m, km

time

  • ISO time units: year, month, week, day, hour, minute, second
  • Exotic time units: millifortnight

mass

  • Imperial: lbs, oz, stone
  • Metric: kg, g

Crashstats

FortuneCookies

  • A module to get random fortune cookies

cookie

  • Get a fortune cookie

fortune

  • Same as 'cookie'

new

  • To set a new fortune cookie, say 'new cookie' followed by the text
  • eg. 'new cookie: you will have a nice day'
  • The string %from% will be replaced by the name of whoever requests the cookie

add

  • Same as 'new'

fetch

  • The command 'fetch cookies from <uri>' will add each line in <uri> to the cookie list
  • Cookie lists must start with one line that reads 'DATA FILE: cookies' and must be at most 100 lines long
  • Blank lines and lines starting with a hash ('#') are ignored

General

  • A module that provides the bot-wide services

help

  • Gives information about modules and commands

shutup

  • Tells the bot to stop talking to you

Greeting

  • A polite module for saying hello and goodbye and so on

hi

  • To greet the bot

bye

  • To say goodbye to the bot

ping

  • To check the bot is alive

status

  • Gives the amount of time that the bot has been active

Infobot

  • Keeps track of factoids and returns them on request
  • To set factoids, just tell me something in the form 'apple is a company' or 'apples are fruit'
  • To find out about something, say 'apple?' or 'what are apples'
  • To correct me, you can use any of: 'no, apple is a fruit', 'apple =~ s/company/fruit/', or 'apple is also a fruit'
  • To make me forget a factoid, 'forget apple'
  • You can use '|' to separate several alternative answers

who

  • If a definition contains $who, then it will be replaced by the name of the person who asked the question

reply

  • If a definition starts with <reply> then when responding the initial prefix will be skipped
  • eg. 'apples are <reply>mm, apples' will mean that 'what are apples' will get the response 'mm, apples'

action

  • If a definition starts with <action> then when responding the definition will be used as an action
  • eg. 'apples are <action>eats one' will mean that 'what are apples' will get the response '* bot eats one'

alias

  • If a definition starts with <alias> then it will be treated as a symlink to whatever follows
  • eg. 'crab apples are <alias>apples' and 'apples are fruit' will mean that 'what are crab apples' will get the response 'apples are fruit'

status

  • Reports on how many factoids are in the database

tell

  • Make me tell someone something. eg. 'tell pikachu what apples are' or 'tell fred about me'

literal

  • To find out exactly what is stored for an entry apples, you would say to me: literal apples

remember

  • If you are having trouble making me remember something (for example 'well, foo is bar' getting treated as 'foo' is 'bar'), then you can prefix your statement with 'remember:' (following the 'no,' if you are changing an entry)
  • eg. 'remember: well, foo is bar'
  • Note that 'well, foo?' is treated as 'what is foo' not is 'what is well, foo', so this is not always useful

no

  • To correct an entry, prefix your statement with 'no,'
  • eg. 'no, I am good' to correct your entry from 'is bad' to 'is good' :-)

Karma

  • A karma tracker

++

  • Increase someone's karma
  • Syntax: victim++

--

  • Decrease someone's karma
  • Syntax: victim--

rank

  • Find someone's karma level
  • Omit the victim's name to get a top 10 list
  • Syntax: 'rank victim' or just 'rank'

MagicEightBall

  • The all knowing magic eight ball, in electronic form

!8ball

  • Ask a question and the answer shall be provided
  • Syntax: '!8ball: will it happen?

Parrot

  • This module allows you to make the bot do stuff

say

  • Makes the bot say something
  • The <target> can be a person or channel
  • Syntax: say <target> <text>

do

  • Makes the bot do (/me) something
  • The <target> can be a person or channel
  • Syntax: do <target> <text>

invite

  • Makes the bot invite (/invite) somebody to a channel
  • Syntax: invite <who> <channel>

announce

  • Makes the bot announce something to every channel in which this module is enabled
  • Syntax: announce <text>

RDF

  • The RDF module monitors various websites

Seen

  • The Seen module watches channels and stores when someone last spoke or performed an action for later recall

seen

  • Says how long it's been since the last time someone was seen
  • Syntax: 'seen <nick>'
  • eg. 'seen mozbot'

TimeIn

time in

  • Tells you the time in the specified location
  • Syntax: 'time in <location>'
  • eg. 'time in perth'

UUIDGen

  • This module is an interface to the uuidgen application

uuid

  • Generates a UUID

cid

  • Generates a UUID but outputs format suitable for components (CID)