"; }else{ $star=NULL; $lk=""; } echo " ".$lk." ".$data['SiteName']." ".$link."
".$lk." ".$data['title']."
Read More".$data['lang']."     ".$star."  ".$data['share']."

".$data['description']."

".$data['date']." (S:".pad_5($data['SiteID'])." B:".pad_3($data['BotID'])." P:".pad_8($data['PageID'])." H:".pad_3($data['HostID']).") ".pad_2($data['hits'])."
"; } function paging($ref,$pp,$rec_count,$qq,$off){ $pages=round($rec_count/10,0,PHP_ROUND_HALF_DOWN)+1; $prev_p=$next_p=0; $page['page']=$pp; $jump_prev=$pp/10; $jump_next=$pp*10; $prev_p=$pp-1; if ($prev_p==0){$prev_p=$pages-1;} if ($jump_prev<1){$jump_prev=$pages-10;} $next_p=$pp+1; if ($next_p==$pages){$next_p=1;} if ($jump_next<0){$jump_next=1;} ///////////////////////////////////// $page['start']=($page['page']*10)-9; $page['end']=$page['start']+9; if (isset($qq)){$home="/?qq=".$qq;}else{$home="/";} ///////////////////////////////////// $page[0]=" << H >> "; if (!is_null($qq)){ $page[0]=" H "; } unset($qq,$next_p,$prev_p,$dbt2,$page['page'],$pages,$pp,$rec_count); memory_get_usage(); return $page; } /* Highlight found search strings to display */ function highlightStr($haystack,$needle,$highlightColorValue){ if (isset($haystack)){ $haystack=html_entity_decode($haystack,ENT_QUOTES|ENT_HTML5,'UTF-8'); if (isset($haystack) and isset($needle)){ if (strlen($haystack) < 1 || strlen($needle) < 1) { return $haystack; } preg_match_all("/$needle+/i",$haystack,$matches); if (is_array($matches[0]) && count($matches[0]) >= 1) { foreach ($matches[0] as $match) { $haystack = str_replace($match,''.$match.'',$haystack); } } return $haystack; }else{ return "Error"; } }else{ return NULL; } } function log_files($notes,$name){ $entry=html_entity_decode($notes,ENT_QUOTES|ENT_HTML5,'UTF-8')."\n"; if (!file_exists($name)){touch ($name);} $data_file=$name; $handle=fopen($name, 'r'); $new_data_file=fopen($data_file, 'a+') or die('Cannot open file: '.$data_file); fwrite($new_data_file, $entry); fclose($new_data_file); fclose($handle); } /* Below, used to send messages VIA XMPP server */ function send_group($BName,$Group,$Send,$Server){ if (isset($_SERVER['SERVER_ADDR']) and $_SERVER['SERVER_ADDR']!=="127.0.0.1"){ $ERROR=shell_exec("echo '".$Send."' | sendxmpp --username netbot --password 4cUTyfWwN5wc7St --jserver ".$Server." --resource ".$BName." --message-type=headline --chatroom ".$Group.""); return $ERROR; } } function send_user($BName,$recitp,$Send){ include('/path/to/config/.tidysearch.php'); $ERROR=shell_exec("echo '".$Send."' | ".$ChatPRG." --username='".$ChatUser."' --password='".$ChatPW."' --jserver='".$ChatServer."' --resource ".$BName." --message-type=headline ".$recitp); } function pad_2($ThisNumber){if (isset($ThisNumber)){return str_pad($ThisNumber,2,"0",STR_PAD_LEFT);}else{return "00";}} function pad_3($ThisNumber){if (isset($ThisNumber)){return str_pad($ThisNumber,3,"0",STR_PAD_LEFT);}else{return "000";}} function pad_5($ThisNumber){if (isset($ThisNumber)){return str_pad($ThisNumber,5,"0",STR_PAD_LEFT);}else{return "00000";}} function pad_8($ThisNumber){if (isset($ThisNumber)){return str_pad($ThisNumber,8,"0",STR_PAD_LEFT);}else{return "00000000";}} /* Test external sites */ function channel_data($url){ $ch=curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); curl_setopt($ch, CURLOPT_CERTINFO, true); curl_setopt($ch, CURLOPT_VERBOSE, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_REFERER, 'http://search.mpaq.org'); $config['useragent']='TidyBot (TidySearch http://search.mpaq.org)'; $logFile=fopen("/tmp/Curl.log", "a"); curl_setopt($ch, CURLOPT_STDERR, $logFile); $config['cookie_file']="/tmp/cookie.txt"; curl_setopt($ch, CURLOPT_COOKIEFILE, $config['cookie_file']); curl_setopt($ch, CURLOPT_COOKIEJAR, $config['cookie_file']); curl_setopt($ch, CURLOPT_USERAGENT, $config['useragent']); $response=curl_exec($ch); if (curl_errno($ch)){ $send="Channel Failed: ".__LINE__."\nresponse: ".$response."\ncurl_error: ".curl_error($ch); return false; }else{ curl_close($ch); return trim($response); } } function test_channel($url){ $home_dir=dirname(__FILE__); include('/path/to/config/.tidysearch.php'); $curl_test = array( CURLOPT_HEADER => true, // we want headers CURLOPT_NOBODY => true, // we don't need body CURLOPT_RETURNTRANSFER => 1, CURLOPT_TIMEOUT => 1, // timeout on response CURLOPT_USERAGENT => "TidySearch-".$version." (TidySearch Engine at http://search.mpaq.org)", // who am i CURLOPT_CONNECTTIMEOUT => 1, // timeout on connect CURLOPT_MAXREDIRS => 10, // stop after 10 redirects CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false ); $ch=curl_init($url); curl_setopt_array($ch,$curl_test); $output=curl_exec($ch); $httpcode=curl_getinfo($ch, CURLINFO_HTTP_CODE); if ($httpcode==200 or $httpcode==301){ return true; }else{ return $httpcode; } return $httpcode; } function Hosts($BotID){ $home_dir=dirname(__FILE__); include('/path/to/config/.tidysearch.php'); $con=mysqli_connect($dbro['host'],$dbro['user'],$dbro['passw'],"TidySearch"); $sql="SELECT * FROM `Hosts` WHERE `HostID`!=".$BotID." AND type='sites' ORDER BY `Hosts`.`HostID` DESC;"; $ret=mysqli_query($con,$sql); while($row=mysqli_fetch_array($ret)){ $HostID=$row['HostID']; $LAN=$row['LAN_IP']; $API=$row['API_IP']; } $con->close(); if (test_channel($API)){$host=$API;} if (test_channel($LAN)){$host=$LAN;} return $host; } function time_check($StartTime){ $interval = date_diff(date_create($StartTime),date_create(date('H:i:s'))); return $interval->format('%R%H:%i:%s'); } /* A MySQL database that needs to move to PostSQL with language codes */ function lang($code){ $home_dir=__DIR__; include('/path/to/config/.tidysearch.php'); $lang=$flag=$img=NULL; if (!isset($code) or $code==""){return NULL;} $con=mysqli_connect($dbro['host'],$dbro['user'],$dbro['passw'],"users"); $sql="SELECT * FROM `_lang` WHERE `code` LIKE '%".$code."%' or `lang` LIKE '".$code."';"; $row=mysqli_fetch_assoc(mysqli_query($con,$sql)); if (isset($row['lang'])){$lang=$row['lang'];}else{$lang="Language ".$code;} if (isset($row['flag'])){$flag=$row['flag'];} if (isset($flag) and file_exists("/var/www/00_00/icons/flags/".$flag)){ $img="".$lang.""; $lang=NULL; } $con->close(); unset($code,$flag,$con); return $lang." ".$img; } ?>