Newer
Older
ubFramework / Portal / docroot / bin / QueueShow.php
@Christopher W. Olsen Christopher W. Olsen on 10 Dec 2017 3 KB Cleaning Up Making It A Sub Module
<?php 

  Header("Content-type: text/plain\n");

  $ast = new AstMan();

  $ast->Login();
  $query = $ast->Query("Action: QueueStatus\r\nQueue: osf-queue\r\n\r\n");
  while ($query = $ast->Query("\r\n")) {
    print $query;
    if (strstr($query,"Event: QueueStatusComplete"))
      break;
    }

class AstMan {

  var $socket;
  var $error;
  
  function AstMan()
  {
    $this->socket = FALSE;
    $this->error = "";
  } 

  function Login($host="localhost", $username="vtiger", $password="5558585"){
    
    $this->socket = @fsockopen("10.0.10.55","5038", $errno, $errstr, 1); 
    if (!$this->socket) {
      $this->error =  "Could not connect - $errstr ($errno)";
      return FALSE;
    }else{
      stream_set_timeout($this->socket, 1); 
  
      $wrets = $this->Query("Action: Login\r\nUserName: $username\r\nSecret: $password\r\nEvents: off\r\n\r\n"); 

     	if (strpos($wrets, "Message: Authentication accepted") != FALSE){
        return true;
      }else{
  		  $this->error = "Could not login - Authentication failed";
        fclose($this->socket); 
        $this->socket = FALSE;
  		  return FALSE;
   	  }
    }
  }
  
  function Logout(){
    if ($this->socket){
      fputs($this->socket, "Action: Logoff\r\n\r\n"); 
      while (!feof($this->socket)) { 
        $wrets .= fread($this->socket, 8192); 
      } 
      fclose($this->socket); 
      $this->socket = "FALSE";
    }
  	return; 
  }
  
  function Query($query){
    $wrets = "";
    
    if ($this->socket === FALSE)
      return FALSE;
      
    fputs($this->socket, $query); 
    do
    {
      $line = fgets($this->socket, 4096);
      $wrets .= $line;
      $info = stream_get_meta_data($this->socket);
    }while ($line != "\r\n" && $info['timed_out'] == false );
    return $wrets;
  }
  
  function GetError(){
    return $this->error;
  }
  
  function GetDB($family, $key){
    $value = "";
  
    $wrets = $this->Query("Action: Command\r\nCommand: database get $family $key\r\n\r\n");
  
    if ($wrets){
      $value_start = strpos($wrets, "Value: ") + 7;
      $value_stop = strpos($wrets, "\n", $value_start);
    	if ($value_start > 8){
        $value = substr($wrets, $value_start, $value_stop - $value_start);
      }
  	}
   	return $value;
  }	
  
  function PutDB($family, $key, $value){
    $wrets = $this->Query("Action: Command\r\nCommand: database put $family $key $value\r\n\r\n");
  
  	if (strpos($wrets, "Updated database successfully") != FALSE){
  		return TRUE;
   	}
    $this->error =  "Could not updated database";
   	return FALSE;
  }	
  
  function DelDB($family, $key){
    $wrets = $this->Query("Action: Command\r\nCommand: database del $family $key\r\n\r\n");

  	if (strpos($wrets, "Database entry removed.") != FALSE){
  		return TRUE;
   	}
    $this->error =  "Database entry does not exist";
   	return FALSE;
  }	
  
  
  function GetFamilyDB($family){
    $wrets = $this->Query("Action: Command\r\nCommand: database show $family\r\n\r\n");
    if ($wrets){
      $value_start = strpos($wrets, "Response: Follows\r\n") + 19;
      $value_stop = strpos($wrets, "--END COMMAND--\r\n", $value_start);
    	if ($value_start > 18){
        $wrets = substr($wrets, $value_start, $value_stop - $value_start);
      }
      $lines = explode("\n", $wrets);
      foreach($lines as $line){
        if (strlen($line) > 4){
          $value_start = strpos($line, ": ") + 2;
          $value_stop = strpos($line, " ", $value_start);
        	$key = trim(substr($line, strlen($family) + 2, strpos($line, " ") - strlen($family) + 2));			
          $value[$key] = trim(substr($line, $value_start));
        }
      }
   	  return $value;
  	}
    return FALSE;
  }	  
}
?>