Example #1
0
 function getBinary($binaryId, $isNfo = false)
 {
     $db = new DB();
     $bin = new Binaries();
     $binary = $bin->getById($binaryId);
     if (!$binary) {
         return false;
     }
     $summary = $this->selectGroup($binary['groupname']);
     $message = $dec = '';
     if (PEAR::isError($summary)) {
         echo $summary->getMessage();
         return false;
     }
     $resparts = $db->query(sprintf("SELECT size, partnumber, messageID FROM parts WHERE binaryID = %d ORDER BY partnumber", $binaryId));
     if (sizeof($resparts) > 1 && $isNfo === true) {
         echo 'NFO is more than 1 part, skipping. ';
         return false;
     }
     foreach ($resparts as $part) {
         $messageID = '<' . $part['messageID'] . '>';
         $body = $this->getBody($messageID, true);
         if (PEAR::isError($body)) {
             echo 'Error fetching part number ' . $part['messageID'] . ' in ' . $binary['groupname'] . ' (Server response: ' . $body->getMessage() . ')';
             return false;
         }
         $dec = $this->decodeYenc($body);
         if (!$dec) {
             echo "Yenc decode failure";
             return false;
         }
         $message .= $dec;
     }
     return $message;
 }
 /**
  * Retrieve all NNTP messages associated with a binaries.ID
  */
 function getBinary($binaryId, $isNfo = false)
 {
     $db = new DB();
     $bin = new Binaries();
     $binary = $bin->getById($binaryId);
     if (!$binary) {
         printf("NntpPrc: Unable to locate binary: %s\n", $binaryId);
         return false;
     }
     $summary = $this->selectGroup($binary['groupname']);
     $message = $dec = '';
     if ($this->isError($summary)) {
         echo "NntpPrc : " . substr($summary->getMessage(), 0, 100) . "\n";
         return false;
     }
     $resparts = $db->query(sprintf("SELECT size, partnumber, messageID FROM parts WHERE binaryID = %d ORDER BY partnumber", $binaryId));
     //
     // Dont attempt to download nfos which are larger than one part.
     //
     if (sizeof($resparts) > 1 && $isNfo === true) {
         //echo 'NntpPrc : Error Nfo is too large... skipping.\n';
         return false;
     }
     foreach ($resparts as $part) {
         $messageID = '<' . $part['messageID'] . '>';
         $body = $this->getBody($messageID, true);
         if ($this->isError($body)) {
             //echo 'NntpPrc : Error fetching part number '.$part['messageID'].' in '.$binary['groupname'].' (Server response: '. $body->getMessage().')';
             return false;
         }
         $dec = $this->decodeYenc($body);
         if (!$dec) {
             printf("NntpPrc: Unable to decode body of binary: %s\n", $binaryId);
             //
             // Yenc decode failed
             //
             return false;
         }
         $message .= $dec;
     }
     return $message;
 }