Example #1
0
 function getComments($commentList)
 {
     $comments = array();
     $spotSigning = new SpotSigning($this->_use_openssl);
     $spotParser = new SpotParser();
     # We extracten elke comment en halen daar de datum en poster uit, inclusief de body
     # als comment text zelf.
     foreach ($commentList as $comment) {
         try {
             $tmpAr = $this->getArticle('<' . $comment['messageid'] . '>');
             $tmpAr['messageid'] = $comment['messageid'];
             # extract de velden we die we willen hebben
             foreach ($tmpAr['header'] as $hdr) {
                 $keys = explode(':', $hdr);
                 switch ($keys[0]) {
                     case 'From':
                         $tmpAr['from'] = trim(substr($hdr, strlen('From: '), strpos($hdr, '<') - 1 - strlen('From: ')));
                         break;
                     case 'Date':
                         $tmpAr['date'] = strtotime(substr($hdr, strlen('Date: ')));
                         break;
                     case 'X-User-Signature':
                         $tmpAr['user-signature'] = $spotParser->unspecialString(substr($hdr, 18));
                         break;
                     case 'X-User-Key':
                         $xml = simplexml_load_string(substr($hdr, 12));
                         if ($xml !== false) {
                             $tmpAr['user-key']['exponent'] = (string) $xml->Exponent;
                             $tmpAr['user-key']['modulo'] = (string) $xml->Modulus;
                         }
                         # if
                         break;
                         # x-user-key
                 }
                 # switch
             }
             # foreach
             # Valideer de signature van de XML, deze is gesigned door de user zelf
             $tmpAr['verified'] = $spotSigning->verifyComment($tmpAr);
             if ($tmpAr['verified']) {
                 $tmpAr['userid'] = $spotSigning->calculateUserid($tmpAr['user-key']['modulo']);
             }
             # if
             $comments[] = $tmpAr;
         } catch (Exception $x) {
             # Soms gaat het ophalen van een comment mis? Raar want deze komen van de XOVER
             # van de server zelf, dus tenzij ze gecancelled worden mag dit niet gebeuren.
             # iig, we negeren de error
         }
         # catch
     }
     # foreach
     # sorteer de comments per datum
     usort($comments, array($this, 'cbCommentDateSort'));
     return $comments;
 }
Example #2
0
 function getComments($commentList)
 {
     $comments = array();
     $spotSigning = new SpotSigning();
     # We extracten elke comment en halen daar de datum en poster uit, inclusief de body
     # als comment text zelf.
     foreach ($commentList as $comment) {
         try {
             $commentTpl = array('messageid' => '', 'fromhdr' => '', 'stamp' => 0, 'user-signature' => '', 'user-key' => '', 'userid' => '', 'verified' => false);
             $tmpAr = array_merge($commentTpl, $this->getArticle('<' . $comment['messageid'] . '>'));
             $tmpAr['messageid'] = $comment['messageid'];
             $tmpAr = array_merge($tmpAr, $this->parseHeader($tmpAr['header'], $tmpAr));
             # Valideer de signature van de XML, deze is gesigned door de user zelf
             $tmpAr['verified'] = $spotSigning->verifyComment($tmpAr);
             if ($tmpAr['verified']) {
                 $tmpAr['userid'] = $spotSigning->calculateUserid($tmpAr['user-key']['modulo']);
             }
             # if
             # encode de body voor UTF8
             $tmpAr['body'] = array_map('utf8_encode', $tmpAr['body']);
             $comments[] = $tmpAr;
         } catch (Exception $x) {
             # Soms gaat het ophalen van een comment mis? Raar want deze komen van de XOVER
             # van de server zelf, dus tenzij ze gecancelled worden mag dit niet gebeuren.
             # iig, we negeren de error
         }
         # catch
     }
     # foreach
     # sorteer de comments per datum
     usort($comments, array($this, 'cbCommentDateSort'));
     return $comments;
 }