public function info_getter($data, $what, $flags = array (), $nicks = array()) {
$what = strtolower ( $what );
foreach ( explode ( "\n", $data ) as $lines ) {
$row = explode ( ":", $lines, 2 );
$title = strtolower ( trim ( $row [0] ) );
switch ($title) {
case (($title == $what) && ($what == "email")) :
preg_match ( '/[A-Za-z0-9_-]+@[A-Za-z0-9_-]+\.([A-Za-z0-9_-][A-Za-z0-9_]+)/', $row [1], $email );
return $email [0];
break;
case (($title == $what) && ($what == "vhost")) :
return $row [1];
break;
case (($title == $what) && ($what == "flags")) :
foreach ( explode ( ",", $row [1] ) as $flag ) {
array_push ( $flags, $flag );
}
break;
case (($title == $what) && ($what == "nicks")) :
foreach ( explode ( " ", $row [1] ) as $nick ) {
if ($nick)
array_push ( $nicks, $nick );
}
break;
case (($title == $what) && ($what == "real addr")) :
return $row [1];
break;
case ((($title == "user seen") || ($title == "last seen")) && ($what == "last seen")) :
if ((trim ( $row [1] ) == "now") && ($what == "last seen")) {
$seen = time ();
break;
}
preg_match ( '/^([a-zA-Z]+) ([0-9]+) ([0-9]+):([0-9]+):([0-9]+) ([0-9]+)/', trim ( $row [1] ), $time );
$seen = mktime ( $time [3], $time [4], $time [5], date ( 'm', strtotime ( $time [1] ) ), $time [2], $time [6] );
break;
case ((($title == "registered") || ($title == "user reg.")) && ($what == "registered")) :
preg_match ( '/^([a-zA-Z]+) ([0-9]+) ([0-9]+):([0-9]+):([0-9]+) ([0-9]+)/', trim ( $row [1] ), $time );
$registered = mktime ( $time [3], $time [4], $time [5], date ( 'm', strtotime ( $time [1] ) ), $time [2], $time [6] );
break;
default :
return false;
}
}
switch ($what) {
case "flags" :
return $flags;
break;
case "nicks" :
return $nicks;
break;
case "registered" :
return $registered;
break;
case "last seen" :
return $seen;
break;
}
}
// TODO: Clean up info_get, this can be done alot better
public function Info_Get($data, $what) {
$what = strtolower ( $what );
if ($what == "nicks")
$nicks = array ();
if ($what == "last seen")
$seen = null;
foreach ( explode ( "\n", $data ) as $lines ) {
$row = explode ( ":", $lines, 2 );
$title = strtolower ( trim ( $row [0] ) );
if ((isset ( $row [0] )) && (isset ( $row [1] ))) {
if (($what == "vHost") && ($title == "vhost"))
return trim ( $row [1] );
else if (($what == "real addr") && ($title == "real addr"))
return trim ( $row [1] );
else if (($what == "flags") && ($title == "flags"))
return trim ( $row [1] );
else if (($what == "nicks") && ($title == "nicks"))
array_push ( $nicks, trim ( $row [1] ) );
else if (($what == "registered") && ($title == "registered"))
return trim ( $row [1] );
else if (($what == "email") && ($title == "email")) {
$email = explode ( " ", trim ( $row [1] ) );
return $email [0];
} else if (($what == "last seen") && (($title == "last seen") || ($title == "user seen"))) {
if (trim ( $row [1] ) == "now")
$seen = time ();
else {
preg_match ( '/^([a-zA-Z]+) ([0-9]+) ([0-9]+):([0-9]+):([0-9]+) ([0-9]+)/', trim ( $row [1] ), $time );
$seen = mktime ( $time [3], $time [4], $time [5], date ( 'm', strtotime ( $time [1] ) ), $time [2], $time [6] );
}
}
}
}
if ($what == "nicks")
return $nicks;
if ($what == "last seen")
return $seen;
return false;
}