[Ircphpstats-devel] [CVS] Module phpstats: Change committed
Status: Inactive
Brought to you by:
mrvolta
From: Mr. v. <mr...@us...> - 2003-05-08 12:39:42
|
Committer : volta <mr...@us...> CVSROOT : /cvsroot/ircphpstats Module : phpstats Commit time: 2003-05-08 12:39:41 UTC Modified files: handlers/create.php handlers/join.php handlers/part.php Log message: Bugfix: ircu can send multiple channels in CREATE, PART (and JOIN). Thanks to wasted for reporting :) ---------------------- diff included ---------------------- Index: phpstats/handlers/create.php diff -u phpstats/handlers/create.php:1.1 phpstats/handlers/create.php:1.2 --- phpstats/handlers/create.php:1.1 Sun Mar 9 13:51:29 2003 +++ phpstats/handlers/create.php Thu May 8 05:39:30 2003 @@ -5,36 +5,38 @@ E-mail: <vo...@gm...> This program is free but copyrighted software; see the file LICENSE for details. - $Id: create.php,v 1.1 2003/03/09 21:51:29 mrvolta Exp $ */ $b = 1; /* Parameters: $source => sender's numeric - $array[2] => channel name + $array[2] => channel name(s) $array[3] => timestamp */ function create ($source,$array) { global $channel,$client,$channelnumber; - // channel was already created? - // happens sometimes when the users join at the same time - if (isset($channel[$array[2]])) { - if ($channel[$array[2]]->returnts() > $array[3]) { - $channel[$array[2]]->changets($array[3],$array[2]); - $channel[$array[2]]->joincreate($source); - sql_joinuser($array[2],$source,"o"); + $chans = explode(",",$array[2]); + foreach ($chans as $key => $val) { + // channel was already created? + // happens sometimes when the users join at the same time + if (isset($channel[$val])) { + if ($channel[$val]->returnts() > $array[3]) { + $channel[$val]->changets($array[3],$val); + $channel[$val]->joincreate($source); + sql_joinuser($val,$source,"o"); + } + else { + $channel[$val]->joinuser($array[3]); + sql_joinuser($val,$source,""); + }; } else { - $channel[$array[2]]->joinuser($array[3]); - sql_joinuser($array[2],$source,""); + $channel[$val] = new channel($array[3],"",NULL,NULL,$source,"o"); + sql_createchannel($val,$channel[$val]); + sql_joinuser($val,$source,"o"); + sql_channelnumber(++$channelnumber); }; - } - else { - $channel[$array[2]] = new channel($array[3],"",NULL,NULL,$source,"o"); - sql_createchannel($array[2],$channel[$array[2]]); - sql_joinuser($array[2],$source,"o"); - sql_channelnumber(++$channelnumber); + $client[$source]->addchan($val); }; - $client[$source]->addchan($array[2]); }; ?> Index: phpstats/handlers/join.php diff -u phpstats/handlers/join.php:1.2 phpstats/handlers/join.php:1.3 --- phpstats/handlers/join.php:1.2 Sun Apr 27 03:58:58 2003 +++ phpstats/handlers/join.php Thu May 8 05:39:30 2003 @@ -10,7 +10,7 @@ $b = 1; /* Parameters: $source => sender's numeric - $array[2] => channel name + $array[2] => channel name(s) $array[3] => timestamp (=createts) or $source => sender's numeric @@ -19,7 +19,6 @@ // join is already a php function .... function dojoin ($source,$array) { global $channel,$client,$channelnumber; - // Create the channel, but without oping the founder if ($array[2] == "0") { foreach ($client[$source]->channels as $key => $val) { $client[$source]->remchan($val); @@ -33,14 +32,18 @@ }; return; }; - if (!isset($channel[$array[2]])) { - $channel[$array[2]] = new channel($array[3],"",NULL,NULL,$source,""); - sql_createchannel($array[2],$channel[$array[2]]); - sql_channelnumber(++$channelnumber); - return; + $chans = explode(",",$array[2]); + foreach ($chans as $key => $val) { + // Create the channel, but without oping the founder + if (!isset($channel[$val])) { + $channel[$val] = new channel($array[3],"",NULL,NULL,$source,""); + sql_createchannel($val,$channel[$val]); + sql_channelnumber(++$channelnumber); + return; + }; + $channel[$val]->joinuser($source); + $client[$source]->addchan($val); + sql_joinuser($val,$source,""); }; - $channel[$array[2]]->joinuser($source); - $client[$source]->addchan($array[2]); - sql_joinuser($array[2],$source,""); }; ?> Index: phpstats/handlers/part.php diff -u phpstats/handlers/part.php:1.1 phpstats/handlers/part.php:1.2 --- phpstats/handlers/part.php:1.1 Sun Mar 9 13:51:29 2003 +++ phpstats/handlers/part.php Thu May 8 05:39:30 2003 @@ -5,25 +5,27 @@ E-mail: <vo...@gm...> This program is free but copyrighted software; see the file LICENSE for details. - $Id: part.php,v 1.1 2003/03/09 21:51:29 mrvolta Exp $ */ $b = 1; /* Parameters: $source => sender's numeric - $array[2] => channel name + $array[2] => channel name(s) */ function part ($source,$array) { global $channel,$client,$channelnumber; - if (!isset($channel[$array[2]])) return; - if (!isset($channel[$array[2]]->users[$source])) return; - $client[$source]->remchan($array[2]); - $channel[$array[2]]->partuser($source); - sql_partuser($array[2],$source); - if ($channel[$array[2]]->isempty()) { - unset($channel[$array[2]]); - sql_removechannel($array[2]); - sql_channelnumber(--$channelnumber); + $chans = explode(",",$array[2]); + foreach ($chans as $key => $val) { + if (!isset($channel[$val])) continue; + if (!isset($channel[$val]->users[$source])) continue; + $client[$source]->remchan($val); + $channel[$val]->partuser($source); + sql_partuser($val,$source); + if ($channel[$val]->isempty()) { + unset($channel[$val]); + sql_removechannel($val); + sql_channelnumber(--$channelnumber); + }; }; }; ?> ----------------------- End of diff ----------------------- |