Mrgiggles
From MozillaWiki
Mr. Giggles
mrgiggles is an IRC bot originally created for monitoring and reporting on the results of a static analysis for GC (garbage collection) rooting hazards. It has grown beyond this original purpose, as such things often do.
Usage
For now, just ask him.
/msg mrgiggles help
Areas of Functionality (aka Plugins)
- analysis: Reporting on static rooting hazard analysis results for SpiderMonkey engine (mrgiggles: help analysis)
- treewatch: Watching the tree for openings/closures (mrgiggles: tell me when inbound opens or mrgiggles: help treewatch)
- pun: Telling puns (mrgiggles: pun)
- map: Timezone lookup (mrgiggles: what time is it in Perth?)
- mqext: Suggest reviewers or bug components for patches to a given file (mrgiggles: who has reviewed nsJSEnvironment.cpp?)
- knowledge: Return information about the interpretation of hex values as nsresult codes, JS::Values, or poison patterns (mrgiggles: what is 0xe5e5e5e5e5f7?)
- histoire: keep a record of what you have been working on (confession: wrote patch for bug 5432100)
- demangle: demangle C++ symbols for *nix or Windows; no Rust yet, sorry (mrgiggles: demangle _ZZN2js3jit11X86Encoding6CCNameENS1_9ConditionEE5names)
Source
The source code may be found at https://bitbucket.org/sfink/mrgiggles
Note that you will almost certainly want a mrgiggles_config.py file. (I'm not sure if it still works without one, but probably not.) Not so basic example:
config = { 'nick': 'drchuckles', 'server': "irc.mozilla.org", 'port': 6667, 'password': "...", 'bitly_token': 'e4718deadbeefdeadbeef2422078f51d2cc41a4c', 'poll-interval': 10, # Seconds 'debug-channel': '#my-debug-channel', 'report-channels': [ '#my-debug-channel', '#mychannel' ], 'nondebug-channels': [ '#mychannel', '#theirchannel' ], 'var-path': "/home/tweety/var/{nick}", 'plugins': { 'treewatch': { 'class': 'TreeWatchPlugin', 'poll-interval': 180 }, 'mqext': { 'class': 'MQExtPlugin' }, 'pulse': { 'class': 'PulsePlugin', 'server': 'pulse.mozilla.org', 'port': 5672, 'user': 'mrgiggles', 'password': '...', 'exchanges': { 'build': 'exchange/build', }, 'queues': { 'build': 'queue/{user}/builds', }, }, 'pun': { 'class': 'PunPlugin' }, } }