This is long and involved, but this is how I did it:
http://sourceforge.net/projects/phpegg/
This is a PHP program that creates a daemon in the chat room. Behind it lives a few MySQL tables. Basically after configuration (which when I have time I'll post, but its not hard to figure out), the bot logs all user in/out activity in a SQL Database. All it takes is this query to get who's in the room(s):
Code:
select DISTINCT nick as username from chan_users where (chan_name = '#general_rem' or chan_name='#everything_else') and reason IS NULL AND nick !='murmurs_bot';
Similar code gets you the amount of time. Basically I modified some code from the PHPMyChat hack to do this:
PHP Code:
// CHAT HACK
// Ok Get Users and Stats
$chatusers=$DB_murmurs->query("select DISTINCT nick as username from chan_users where chan_name = '#general_rem' AND mode='u' and reason IS NULL AND nick !='rem_bot';");
if ($chatuser=$DB_murmurs->fetch_array($chatusers)) {
$numchatusers = $DB_murmurs->query_first("select count(nick) as chatcount from chan_users where chan_name = '#general_rem' AND mode='u' and reason IS NULL AND nick !='rem_bot';");
$numchatuser = $numchatusers[chatcount];
$chatusername=$chatuser[username];
$activechatusers=$chatusername;
while ($chatuser=$DB_murmurs->fetch_array($chatusers)) {
$chatusername=$chatuser[username];
$activechatusers.=", ".$chatusername;
}
if ($numchatuser == 1) {
$numchatuser = "There is ".$numchatuser." person in the chat room";
} else {
$numchatuser = "There are ".$numchatuser." people in the chat room";
}
$lightbulb = 'on';
} else {
$lightbulb='off';
$numchatuser = "Nobody is in the chat room at this time.";
}
eval("\$chatinfo .= \"".gettemplate("chatloggedin")."\";");
// END CHAT HACK
Then, just use the jPilot hack already posted.
But the key is the php_egg program. Also, I did a cron job that restarts the bot every half hour, just to make sure it stays alive. Right now our IRC server is in a different datacenter, so it died sometimes.
You can see a demo of this at
http://tony.murmurs.com
EThan