From 664fe7e953423790f556a0e9093a3d9667848567 Mon Sep 17 00:00:00 2001
From: Jacek Kowalski <Jacek@jacekk.info>
Date: Fri, 12 Feb 2016 23:24:39 +0000
Subject: [PATCH] [mod_rss] Poprawka ładowania kanałów RSS (external entites)

---
 class/BotMsgGG.php |   25 ++++++++++++-------------
 1 files changed, 12 insertions(+), 13 deletions(-)

diff --git a/class/BotMsgGG.php b/class/BotMsgGG.php
index acd339d..d14e99e 100644
--- a/class/BotMsgGG.php
+++ b/class/BotMsgGG.php
@@ -21,10 +21,6 @@
 	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
 	 */
@@ -70,7 +66,7 @@
 		{
 			if(count($this->images) > 0) {
 				$push = new BotAPIGG();
-				foreach($this->images as $data) {
+				foreach($this->images as $image) {
 					if(!$push->existsImage($image[2])) {
 						$push->putImage($image[3]);
 					}
@@ -115,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;
+		}
 	}
 	
 	/**
@@ -123,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) {
@@ -335,11 +333,12 @@
 			
 			$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')) {
@@ -380,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