#!/usr/bin/php exec("INSERT INTO $dbname.job_log (timestamp,job_name,status) VALUES ('$timestamp','$jobname','9')")===false){echo DateTime::createFromFormat('U.u',number_format(microtime(true),6,'.',''))->setTimeZone(new DateTimeZone($timezone))->format("Y-m-d H:i:s.u "),print_r($mysqlcon->errorInfo()),"\n";}else{return $jobid=$mysqlcon->lastInsertId();}}function check_shutdown($timezone){if(!is_file(substr(__DIR__,0,-4).'logs/pid')){echo DateTime::createFromFormat('U.u',number_format(microtime(true),6,'.',''))->setTimeZone(new DateTimeZone($timezone))->format("Y-m-d H:i:s.u "),"Received signal to stop. Shutting down...\n";exit;}}check_db($mysqlcon,$lang,$dbname,$timezone,$currvers);echo DateTime::createFromFormat('U.u',number_format(microtime(true),6,'.',''))->setTimeZone(new DateTimeZone($timezone))->format("Y-m-d H:i:s.u "),"Connect to TS3 Server (Address: \"",$ts['host'],"\" Voice-Port: \"",$ts['voice'],"\" Query-Port: \"",$ts['query'],"\")...";try{$ts3=TeamSpeak3::factory("serverquery://".$ts['user'].":".$ts['pass']."@".$ts['host'].":".$ts['query']."/?server_port=".$ts['voice']."&blocking=0");echo " [done]\n";try{usleep($slowmode);$ts3->selfUpdate(array('client_nickname'=>$queryname));}catch(Exception $e){try{usleep($slowmode);$ts3->selfUpdate(array('client_nickname'=>$queryname2));}catch(Exception $e){echo "\n",DateTime::createFromFormat('U.u',number_format(microtime(true),6,'.',''))->setTimeZone(new DateTimeZone($timezone))->format("Y-m-d H:i:s.u "),$lang['error'],$e->getCode(),': ',$e->getMessage(),"\n";}}echo DateTime::createFromFormat('U.u',number_format(microtime(true),6,'.',''))->setTimeZone(new DateTimeZone($timezone))->format("Y-m-d H:i:s.u "),"Join to specified Channel...";usleep($slowmode);$whoami=$ts3->whoami();if($defchid!=0){try{usleep($slowmode);$ts3->clientMove($whoami['client_id'],$defchid);echo " [done]\n";}catch(Exception $e){if($e->getCode()!=770){echo "\n",DateTime::createFromFormat('U.u',number_format(microtime(true),6,'.',''))->setTimeZone(new DateTimeZone($timezone))->format("Y-m-d H:i:s.u "),$lang['error'],$e->getCode(),': ',$e->getMessage(),"\n";}else{echo " [done]\n";}}}else{echo " no Channel defined\n";}echo DateTime::createFromFormat('U.u',number_format(microtime(true),6,'.',''))->setTimeZone(new DateTimeZone($timezone))->format("Y-m-d H:i:s.u "),"Bot starts now his work!\n";$looptime=1;while(1){if($looptime<1){$loopsleep=1 - $looptime;check_shutdown($timezone);usleep($loopsleep);}$starttime=microtime(true);check_shutdown($timezone);usleep($slowmode);$ts3->clientListReset();$allclients=$ts3->clientList();check_shutdown($timezone);usleep($slowmode);$ts3->serverInfoReset();$serverinfo=$ts3->serverInfo();if($defchid!=0){try{usleep($slowmode);$ts3->clientMove($whoami['client_id'],$defchid);}catch(Exception $e){}}$jobid=log_mysql('calc_user',$mysqlcon,$timezone);calc_user($ts3,$mysqlcon,$lang,$dbname,$slowmode,$jobid,$timezone,$showgen,$update,$grouptime,$boostarr,$resetbydbchange,$msgtouser,$uniqueid,$updateinfotime,$currvers,$substridle,$exceptuuid,$exceptgroup,$allclients);check_shutdown($timezone);usleep($slowmode);$jobid=log_mysql('get_avatars',$mysqlcon,$timezone);get_avatars($ts3,$mysqlcon,$lang,$dbname,$slowmode,$jobid,$timezone);check_shutdown($timezone);usleep($slowmode);$jobid=log_mysql('update_groups',$mysqlcon,$timezone);update_groups($ts3,$mysqlcon,$lang,$dbname,$slowmode,$jobid,$timezone,$serverinfo);check_shutdown($timezone);usleep($slowmode);$jobid=log_mysql('calc_serverstats',$mysqlcon,$timezone);calc_serverstats($ts3,$mysqlcon,$lang,$dbname,$slowmode,$jobid,$timezone,$serverinfo,$substridle,$grouptime);check_shutdown($timezone);usleep($slowmode);$jobid=log_mysql('calc_userstats',$mysqlcon,$timezone);calc_userstats($ts3,$mysqlcon,$lang,$dbname,$slowmode,$jobid,$timezone);check_shutdown($timezone);usleep($slowmode);$jobid=log_mysql('clean',$mysqlcon,$timezone);clean($ts3,$mysqlcon,$lang,$dbname,$slowmode,$jobid,$timezone,$cleanclients,$cleanperiod);$looptime=microtime(true)- $starttime;}}catch(Exception $e){echo DateTime::createFromFormat('U.u',number_format(microtime(true),6,'.',''))->setTimeZone(new DateTimeZone($timezone))->format("Y-m-d H:i:s.u "),$lang['error'].$e->getCode().': '.$e->getMessage(),"\n";$offline_status=array(110,257,258,1024,1026,1031,1032,1033,1034,1280,1793);if(in_array($e->getCode(),$offline_status)){if($mysqlcon->exec("UPDATE $dbname.stats_server SET server_status='0'")===false){echo DateTime::createFromFormat('U.u',number_format(microtime(true),6,'.',''))->setTimeZone(new DateTimeZone($timezone))->format("Y-m-d H:i:s.u "),$lang['error'],print_r($mysqlcon->errorInfo()),"\n";$sqlmsg.=print_r($mysqlcon->errorInfo());$sqlerr++;}}$sqlmsg.=$e->getCode().': '.$e->getMessage();$sqlerr++;}?>