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; }
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; }