From 6411a4f462fcd039ce4d233aaf28a5186b20eeea Mon Sep 17 00:00:00 2001 From: Jacek Kowalski <Jacek@jacekk.info> Date: Fri, 12 Feb 2016 23:26:39 +0000 Subject: [PATCH] [mod_pogoda] Podbicie wersji API yr.no --- class/BotMsgGG.php | 55 ++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 36 insertions(+), 19 deletions(-) diff --git a/class/BotMsgGG.php b/class/BotMsgGG.php index 4f5638e..d14e99e 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(); @@ -21,10 +20,6 @@ const FORMAT_UNDERLINE =0x04; const FORMAT_COLOR = 0x08; const FORMAT_IMAGE = 0x80; - - const COLOR_RED = 0x00010000; - const COLOR_GREEN = 0x00000100; - const COLOR_BLUE = 0x00000001; /** * @param BotMsg $msg Wiadomość do przekonwertowania @@ -49,15 +44,35 @@ /** * 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 { + if(count($this->images) > 0) { + $push = new BotAPIGG(); + foreach($this->images as $image) { + if(!$push->existsImage($image[2])) { + $push->putImage($image[3]); + } + } + } + $image = ''; } @@ -96,7 +111,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; + } } /** @@ -104,11 +125,7 @@ */ function sendPullResponse() { header('Content-Type: application/x-gadu-gadu; charset=utf-8'); - echo $this; - } - - private function rewriteOne($node, $saveto) { - + echo $this->getGG(); } private function rewrite($dom, $saveto, $top = TRUE) { @@ -309,19 +326,19 @@ $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) .pack('CCVV', 0x09, 0x01, $size, hexdec($crc)); + $this->f_old = ''; } } private function format(&$node) { - $node->setAttribute('beforeFormatType', ord($this->f_type)); + $node->setAttribute('beforeFormatType', dechex($this->f_type)); $node->setAttribute('beforeFormatColor', base64_encode($this->f_color)); if($node->hasAttribute('color')) { @@ -362,7 +379,7 @@ } private function unformat($node) { - $this->f_type = chr($node->getAttribute('beforeFormatType')); + $this->f_type = hexdec($node->getAttribute('beforeFormatType')); $node->removeAttribute('beforeFormatType'); $this->f_color = base64_decode($node->getAttribute('beforeFormatColor')); -- Gitblit v1.9.1