From 4cc259fef15c9a4212e635d2c62e4c9ddf9b4513 Mon Sep 17 00:00:00 2001 From: Jacek Kowalski <Jacek@jacekk.info> Date: Sun, 12 Aug 2012 14:26:24 +0000 Subject: [PATCH] Botmaster wymaga pustego nagłówka HTTP Expect przy wysyłaniu obrazka. --- class/BotMsgGG.php | 52 ++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 36 insertions(+), 16 deletions(-) diff --git a/class/BotMsgGG.php b/class/BotMsgGG.php index 4ab34a1..e2cbf47 100644 --- a/class/BotMsgGG.php +++ b/class/BotMsgGG.php @@ -6,7 +6,6 @@ private $parser; private $html = ''; private $old = ''; - private $img = ''; private $format = ''; private $images = array(); @@ -49,19 +48,36 @@ /** * Zwraca wiadomość zgodną z BotAPI Gadu-Gadu, którą można przekazać bezpośrednio do BotMastera - * @param bool $img Czy dołączać obrazki? + * @param NULL|bool $img Czy dołączać obrazki? * @return string */ - function getGG($image = TRUE) { - if($image) { - $image = $this->img; + function getGG($image = NULL) { + if($image === FALSE) { + $image = ''; + } + elseif($image === TRUE) { + $last = array_pop($this->images); + if(count($this->images) > 0) { + $push = new BotAPIGG(); + foreach($this->images as $data) { + $push->putImage($image[3]); + } + } + + $image = $last[2].file_get_contents($last[3]); } else { - $image = ''; - foreach($this->images as $img) { - $image .= $img[2]; + if(count($this->images) > 0) { + $push = new BotAPIGG(); + foreach($this->images as $image) { + if(!$push->existsImage($image[2])) { + $push->putImage($image[3]); + } + } } + + $image = ''; } $format = $this->getFormat(); @@ -99,7 +115,13 @@ * @return string */ function getFormat() { - return pack('Cv', 0x02, strlen($this->format)).$this->format; + if($this->format == '') { + return ''; + } + else + { + return pack('Cv', 0x02, strlen($this->format)).$this->format; + } } /** @@ -107,7 +129,7 @@ */ function sendPullResponse() { header('Content-Type: application/x-gadu-gadu; charset=utf-8'); - echo $this; + echo $this->getGG(); } private function rewriteOne($node, $saveto) { @@ -211,7 +233,7 @@ DOMHelper::rtrim($saveto); DOMHelper::insertElement('br', $saveto); - $tag = DOMHelper::cloneNode($node, $saveto, 'u'); + $tag = DOMHelper::cloneNode($node, $saveto, 'span'); $this->rewrite($node, $tag, FALSE); $saveto->appendChild($tag); break; @@ -223,7 +245,7 @@ $node->setAttribute('start', 1); } - $tag = DOMHelper::cloneNode($node, $saveto, 'u'); + $tag = DOMHelper::cloneNode($node, $saveto, 'span'); $this->rewrite($node, $tag, FALSE); $saveto->appendChild($tag); break; @@ -312,14 +334,12 @@ $crc = hash_file('crc32b', $src); $name = sprintf('%08s%08x', $crc, $size); - $this->images[$src] = array($crc, $size, $name); + $this->images[$src] = array($crc, $size, $name, $src); } $node->setAttribute('name', $name); - $this->img .= $name.file_get_contents($src); - $this->format .= pack('vC', mb_strlen($this->old), self::FORMAT_IMAGE/*|$this->f_type*/) - // //.$this->f_color + $this->format .= pack('vC', mb_strlen($this->old), self::FORMAT_IMAGE) .pack('CCVV', 0x09, 0x01, $size, hexdec($crc)); } } -- Gitblit v1.9.1