Igobot Administration and Usage

  • warning: mysql_connect() [function.mysql-connect]: Access denied for user 'db11867'@'64.13.192.21' (using password: YES) in /nfs/c01/h11/mnt/11867/domains/linuxfiesta.com/html/gallery/lib/adodb/drivers/adodb-mysql.inc.php on line 348.
  • warning: mysql_connect() [function.mysql-connect]: Access denied for user 'db11867'@'64.13.192.21' (using password: YES) in /nfs/c01/h11/mnt/11867/domains/linuxfiesta.com/html/gallery/lib/adodb/drivers/adodb-mysql.inc.php on line 348.

19 August 2007: Corrected issues with < and >. Article now accurate and usable

Igobot is an Eggdrop bot used mainly for factoids in #ubuntu-ph and channel administration in #support-ph. Since Butiki went MIA, we've been looking for a replacement. Sure we can always ask for Ubuntu's Ubotu, but we weren't allowed to play with it. Then came uninvited and unwanted users in #support-ph which caused the channel to be moderated. We needed a bot which can hang out on two channels and assume two different responsibilities.

Supybot was the first engine used by Igobot. It was the easiest of all, but has one major flaw. It's not supported by Free Shell Providers. Besides, it has problems giving out +o and +v to users even with correct flags.

Next I tried Eggdrop. It's a pain in the ass to setup, but it worked well. There are also hundreds of scripts available for download. After setting up Igobot 2.0, I searched for a shell to host it. It wouldn't be of much help if Igobot logs off when I do. Shellshock was more than happy to host Igobot, and has been performing well for the past few days.

Here's a list of commands we can use with Igobot. Please remember that those preceded by a dot or period are commands that will only work on a telnet session. PM me if you want to administer Igobot on telnet.

Public Commands
Change Password: /msg igobot pass <password>
New Hostmask: /msg igobot ident <password>
Add Hostmask: /msg igobot addhost <password> <hostmask>
Voice: /msg igobot voice <password> <channel>
Whois: /msg igobot whois <nick>
List Users: /msg igobot who <channel>
Op: /msg igobot op <password> <channel>
Invite: /msg igobot invite <password> <channel>
Send Key then Invite: /msg igobot key <password> <channel>

View Mem Usage: /msg igobot memory <password>
Save User File: /msg igobot save <password>
Reload Config File: /msg igobot rehash <password>
Display Status: /msg igobot status <password>
Restart Bot: /msg igobot restart <password>
Kill Bot: /msg igobot die <password> <message>
Leave Channel: /msg igobot go <channel>
Help Topic: /msg igobot help

Script Commands
Whois: !whois <nick>
Whowas: !whowas <nick>
Who: !who <nick>
Version: !version
User Host: !userhost <nick>
User IP: !userip <nick>
Seen: !seen <nick>
Fetch Meaning of Acronym: !acronym <acronym>
Add a +v User to Database: !addvoice <nick>
Translate: !translate <language> <word or phrase>
e.g !translate es-en si senor
Dictionary: !dict <word>
Convert: !convert <quantity> to <quantity>
Math: !math <equation>
Calc: !calc <equation>

Google Comprehensive Search
!google <define:|spell:> <search terms> <1+1> <1 cm in ft> <patent ##> <weather city|zip> <??? airport> <city,state/zip>
Google Search: !google <search term>
Google Images: !images <search term>
Google Groups: !groups <search terms>
Google Local: !local <what> near <where>
Google Print: !print <search terms>
Google Video: !video <search terms>
Google Fight: !fight <word(s) one> vs <word(s) two>
Weather: !weather <search>
Forecast: !forecast <search>
Astronomy: !sky <location>
see http://www.wunderground.com for list of cities

IP To Country: !ip2c <IP Address>
NSLookup: !nslookup <host|ip|nick>
DNS: !dns <host|ip|nick>
RSS Digg: !digg
RSS Slashdot: !slashdot
RSS Ubuntu Fridge: !fridge

Kill Bot: !die
Restart Bot: !restart
Op User: !opme
Deop User: !deopme
Op User: !op <nick>
Deop User: !deop <nick>
Add Op: !addop <nick>
Delete Op: !delop <nick>
Add User: !adduser <nick>
Delete User: !deluser <nick>
Lock Channel: !lc
Unlock Channel: !uc
Global Ban: !gban <nick>
Ban: !ban <nick>
Unban: !unban <nick>
Kick: !kick <nick>
Voice: !voice <nick>
Devoice: !devoice <nick>

Factoids
!learn add <word> <definition>
!learn del word <number|all>
!learn <ins|put|rep> <number> <definition>
?? <word>
?? <word> > nick

Entertainment
Coffee: !coffee <volly | thebeast | mspiggy | simple | anyone | Colitis | latte | mug | pot | espresso | grounds | mocha | decaf | god | time>
Coke: !coke
Country: !country <country prefix>
IceCream: !icecream <1scoop | 2scoop | split | sprinkles | nuts | topping | sundae>
Kiss: !kiss <nick>
Movies: !movie
Hug: !hug <nick>
Snuggle: !snuggle <nick>
Kiss: !kiss <nick>
Date: !date
Food Court: !food-court
Bathroom: !bathroom
Soda: !soda <nick>
M&M: !m&m <nick>
Boyfriend: !bf <nick>
Girlfriend: !gf <nick>
Beer: !beer <nick>
Ticket: !ticket <nick>
Order: !order <something>
Pepsi: !pepsi <nick>
Jokes: !joke or !redneck
Tickle: !tickle <nick>
Tip: !tip <whatever>

Notes
Send Note: .note <Nick> <Message>
Send Note: /msg igobot notes <password> to <nick> <message>
List Notes: .notes index
List Notes: /msg igobot notes <password> index
Read Notes: .notes read <# or ALL>
Read Notes: /msg igobot notes <password> read <# or ALL>
Erase Notes: .notes erase <# or ALL>
Erase Notes: /msg igobot notes <password> erase <# or ALL>

User Administration
Display all users: .match * 999
Add user in a channel: .adduser <nick>
Delete user in a channel: .deluser <nick>
Add user not in a channel: .+user <nick>
Delete user not in a channel: .-user <nick>
Change Password: .chpass <nick> <password>
Unset Password: .chpass <nick>
Adding Hostmask: .+host <nick> <hostmask>
e.g. .+host hyena *!hyena@*.africa.net
Remove Hostmask: .-host <nick> <hostmask>

Op User: .op <nick> <channel>
DeOp User: .deop <nick> <channel>
Voice User: .voice <nick> <channel>
DeVoice User: .devoice <nick> <channel>
Invite User: .invite <nick> <channel>
Kick User: .kick <channel> <nick> <reason>

Attributes
Add Global o Flag: .chattr <nick> +o
Remove Global o Flag: .chattr <nick> -o
Add Channel o Flag: .chattr <nick> +o <channel>
Remove Channel o Flag: .chattr <nick> -o <channel>
Multiple Flags: .chattr <nick> +vfp <channel>

Ban
Display Ban List: .bans
Display Global Ban List: .bans all
Add Ban: .+ban <ban mask>
e.g. .+ban *!*lamer@*.isp.net
Add Channel Ban: .+ban <banmask> <channel>
Remove Ban: .-ban <banmask>
Reset Ban List: .resetbans <channel>

Channel Commands
Set Channel: .chanset <channel> <option>
e.g. .chanset #channel -dynamicbans +autoop
Join Channel: .+chan <channel>
Channel Info: .chaninfo <channel>
Reload Channel Settings: .chanload
Save Channel Settings: .chansave
List Channel Users: .channel <channel>
Change Topic from Console: .topic <text>

Miscellaneous
Action: .act <message>
Send Private Message: .msg <nick> <message>
Say: .say <channel> <message>
Reload Config File: .rehash
Restart Bot: .restart
Save User File: .save
Display Bot's Status: .status
View Mem Usage: .memory

Comment on Log: .addlog <text>
Mark you as Away: .away <away message>
Mark you as Back: .back
Backup User List: .backup
Announce: .banner <text>
Kick User in Partyline: .boot <nick> <reason>

Kill Bot: .die <quit message>
Change Password: .newpass <password>
Quit: .quit
Login As Another User: .su <nick.
Show Total and Daily Traffic: .traffic
Show Uptime: .uptime

Searching Users
match <attr> [channel] [[start] limit]
Shows you user records with the attributes requested. The <attr> option is of the form:
<+/-><global>[&/|<channel>[&/|<bot>]]

Specifying & as the separator will cause AND style matching, | will cause OR style matching. Channel flags are matched against the specified channel (or your console channel), and bot is matched against the separate bot flags. Some examples:

.match +o
will match any GLOBAL +o's
.match -o&+o
will match anyone without a global +o AND with a channel +o on your console channel
.match +f|+f
will match anyone with a global +f or a channel +f on your console channel
.match |f #fred
will match anyone with +f on channel #fred