jibot is an extensible, 100% pythonic bot, appearing on the
freenode channel,
#joiito. VictorRuiz (
rvr) is the original programmer, and it has most recently been updated by AndySmith (
termie). jibot is based on irclib.py's simpleclient.py. It uses
RSS Parser,
PyGoogle, ,
PyTechnorati and
PyAmazon by MarkPilgrim.
Commands
Query commands
-
?info www.blog.com - Show blog info (Technorati)
-
?last www.blog.com - Read the last post (Technorati)
kostas
-
?google keywords - Query Google and display the first 3 titles+links
-
?amazon keywords - Query Amazon by keywords and display the first 3 products
-
?isbn isbn - Query Amazon by ISBN and display the first 3 products
-
nick++ - Add 1 point to nick's karma
-
nick-- - Remove 1 point to nick's karma
-
?karma - List karmas
-
? karma <nick> - Show the karma for <nick>
-
?blog sentence - Post a sentence in
#joiito bot blog. Sentence is a paragraph, which can use any HTML tag. You can also use Blogatex, a wiki-like macro language:
-
[{key words http://link.com}]
-
[*bold*]
-
[_underlined_]
-
[/italic/]
Silly commands
-
?cool <nick> - Displays a cool (?) message
-
?fight <nick> - Makes you and <nick> fight
Easter Eggs
-
included
Learning Commands
-
?learn <concept> is <description> - stores the description for the word
-
?def <concept> - displays the definition for the word
-
?def - lists the location of the definition braindump
-
?forget <concept> is <description> - deletes description from the definition
-
?forgetme - removes all your definitions
TODO
-
Alerts of blog updates of #joiito users
-
Favorites list stuff
-
Case sensitive? -- Everything now gets converted to lowercase NoMatterWhat
-
Re-work the damn issue with it thinking people are there who shouldn't be
-
Allow mass favor/unfavor/disfavor/pardons
-
Def
-
Meta-defs, things like City, Timezone, stuff like that
-
Heralding:
-
Per-channel setting on ?herald
-
When it heralds after a nick change, for some reason it still lets the channel be overridden if somebody in another channel speaks at exactly the same time.
-
Turn off anonymous heralds
-
Karma
-
Commenting ability for karma
-
karma trail, who left it and such, will require a heavy re-work of current system
-
Disallow affecting karma in PM
-
Blogging
-
Make "?blog" by itself give the location of the blog.
-
General
-
Remove the delay from the say and action commands, the server doesn't require throttling
-
Truncate say and aciton to prevent flooding.
-
Add an admin ?ignore command to ignore annoying people, available as time-based, something like a ?jail
-
Keep track of nick changes, or make it based on IP
-
Feature Request
-
?imdb search
-
?rollingstone search(??)
-
Comments for Karma - by crw
-
FOAFish functionality, sort of like PieSpy, likely through a plugin
-
Plugin Support
-
Watson, too, possibly. Seems to be a gui tool, though.
-
Aliasing stuff:
-
Needs to be able to unassign yourself from a name that it think you are an alias to
-
Wiki
-
Wikipedia!!
Ideas & Suggestions (Add your ideas also)
-
Better social skills mods (decrease the "noise" ratio in the channel) (-- RogerWood)
-
We-already-know sensitivity. Limit heralding to once-per-nym-or-alias every x (10?) minutes. Better yet, the bot does not herald if the nym has joined OR left the channel in the past x minutes. This addresses the split/join-flood problem (splits will resolve within x minutes, so "returning" people have "left" within x minutes and will not be heralded), and the more-general cases of people changing nicks (and changing back) and the join-herald-nickchange-herald. Jibot should not invoke "we saw that already" thoughts in humans in the channel.
-
Pace-of-conversation sensitivity. When human activity in the channel exceeds a certain pace (in msgs per minute), the bot goes into a less-obtrusive "quieter mode." In this case it still responds to direct commands (speaks when spoken to), but only uses "short heralds" (first clause of the herald messages). This will require some re-engineering of the heralds, so the first clause is short and relevant. Jibot should not interrupt the "adults" when they're speaking.
-
Allow ?def and ?learn in /msg
-
Dump factoids to Wiki or web page that can be read (and edited?) away from irc
-
?forgetall <item> command so you don't need to clear out each factoid individually
-
I would replace ?isbn by a more generic one, using the service at http://isbn.nu/ISBN_NUMBER. And move the previous one by ?amazonisbn --KarlDubost
-
some ideas for integration with wiki at http://webseitz.fluxent.com/wiki/WikiAndIrc --BillSeitz
-
Allow "/msg jibot ?command args" to avoid further #joiito spamming.
-
Document ?heraldme
BUGS
-
?def causes JiBot to get signed off because of "Excess Flood" --Stuart Woodward
Changelog
-
Looks very cool. Can't wait to hack it.
-- JoiIto 2003-06-05 23:13:18 JST
-
JiBot 0.2. Among other changes, help and Amazon commands added. -- VictorRuiz 2003-06-08 14:15:00 JST
-
JiBot 0.3. Amazon ISBN search command added. Technorati search support added. -- VictorRuiz 2003-06-09 10:38:00 JST
-
JiBot 0.6. Complete refactor, added: SQLite backend, Logging, Configuration Files, etc..
more details -- AndySmith
Comments/Questions
-
How do I change what jibot says about me as I enter a channel? -- don-o (freenode)
Use ?learn dan-o is a person
hacking the jibot
The source code can be downloaded from
SourceForge. The development branch can be browsed via
CVS Web.
Opening of SourceForge project -- VictorRuiz 2004-10-20 06:56:42 JST
Tips for using the sourceforge cvs on OSX:
To be able to checkin once you have been added to the project by Victor:
setenv CVS_RSH ssh
Getting sources:
cvs -d:pserver:yourname@cvs.sourceforge.net:/cvsroot/jibot login cvs -d:pserver:yourname@cvs.sourceforge.net:/cvsroot/jibot co jibotUpdating sources:
cd jibot cvs -d:pserver:yourname@cvs.sourceforge.net:/cvsroot/jibot updateChecking back in:
cvs -d:ext:yourname@cvs.sourceforge.net:/cvsroot/jibot commit -m 'descriptive comment'
