Firebot: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
| (17 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
firebot is a bot on irc.mozilla.org. | |||
Channel OPs can use /invite to get firefox to join their channel. | |||
* Administrator: [https://mozillians.org/u/glob/ glob] <[mailto:byron@glob.com.au byron@glob.com.au]> | |||
* | * Repository: [https://github.com/globau/firebot github/globau/firebot] | ||
* | * Blog : [http://blog.glob.com.au/ blog.glob.com.au] | ||
Firebot is in maintenance mode – while new feature generally are not being added it will continue to run for the foreseeable future. | |||
== | = Modules = | ||
=== 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" | ||
=== | == 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) | |||
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.
- Administrator: glob <byron@glob.com.au>
- Repository: github/globau/firebot
- Blog : blog.glob.com.au
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
- 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"
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)