[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 -----------------------
|