From b6f80e8ee77db87cddcfbb642db057baad9dc874 Mon Sep 17 00:00:00 2001
From: Friendika <info@friendika.com>
Date: Sun, 23 Oct 2011 00:25:45 -0700
Subject: [PATCH 1/4] revup

---
 boot.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/boot.php b/boot.php
index 13c96c9bd9..c88a10a227 100644
--- a/boot.php
+++ b/boot.php
@@ -8,7 +8,7 @@ require_once("include/pgettext.php");
 require_once('include/nav.php');
 
 define ( 'FRIENDIKA_PLATFORM',     'Free Friendika');
-define ( 'FRIENDIKA_VERSION',      '2.3.1141' );
+define ( 'FRIENDIKA_VERSION',      '2.3.1142' );
 define ( 'DFRN_PROTOCOL_VERSION',  '2.21'    );
 define ( 'DB_UPDATE_VERSION',      1098      );
 

From 0b2c5bf8f54326626c28906c7181e546b56e6c44 Mon Sep 17 00:00:00 2001
From: Friendika <info@friendika.com>
Date: Sun, 23 Oct 2011 01:54:51 -0700
Subject: [PATCH 2/4] fix queue_fns

---
 include/queue_fn.php | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/include/queue_fn.php b/include/queue_fn.php
index 2168d42d78..3c1087f4eb 100644
--- a/include/queue_fn.php
+++ b/include/queue_fn.php
@@ -26,7 +26,8 @@ function add_to_queue($cid,$network,$msg,$batch = false) {
 	if($batch_queue < 1)
 		$batch_queue = 1000;
 
-	$r = q("SELECT COUNT(*) AS `total` FROM `queue` left join `contact` WHERE ``queue`.`cid` = %d AND `contact`.`self` = 0 ",
+	$r = q("SELECT COUNT(*) AS `total` FROM `queue` left join `contact` ON `queue`.`cid` = `contact`.`id` 
+		WHERE `queue`.`cid` = %d AND `contact`.`self` = 0 ",
 		intval($cid)
 	);
 	if($r && count($r)) {
@@ -43,9 +44,11 @@ function add_to_queue($cid,$network,$msg,$batch = false) {
 	q("INSERT INTO `queue` ( `cid`, `network`, `created`, `last`, `content`, `batch`)
 		VALUES ( %d, '%s', '%s', '%s', '%s', %d) ",
 		intval($cid),
+		dbesc($network),
 		dbesc(datetime_convert()),
 		dbesc(datetime_convert()),
 		dbesc($msg),
 		intval(($batch) ? 1: 0)
 	);
+
 }

From 6eea312c213d34b21681b90a51bd83e6cfe936f4 Mon Sep 17 00:00:00 2001
From: Friendika <info@friendika.com>
Date: Sun, 23 Oct 2011 16:01:04 -0700
Subject: [PATCH 3/4] workaround for transmitting photos to D*

---
 boot.php                   |  2 +-
 include/bb2diaspora.php    |  2 +-
 include/diaspora.php       |  2 ++
 include/profile_update.php | 32 +++++++++++++++++---------------
 4 files changed, 21 insertions(+), 17 deletions(-)

diff --git a/boot.php b/boot.php
index c88a10a227..86b219dc2b 100644
--- a/boot.php
+++ b/boot.php
@@ -8,7 +8,7 @@ require_once("include/pgettext.php");
 require_once('include/nav.php');
 
 define ( 'FRIENDIKA_PLATFORM',     'Free Friendika');
-define ( 'FRIENDIKA_VERSION',      '2.3.1142' );
+define ( 'FRIENDIKA_VERSION',      '2.3.1143' );
 define ( 'DFRN_PROTOCOL_VERSION',  '2.21'    );
 define ( 'DB_UPDATE_VERSION',      1098      );
 
diff --git a/include/bb2diaspora.php b/include/bb2diaspora.php
index ef5477f1b4..d6c7994ba5 100644
--- a/include/bb2diaspora.php
+++ b/include/bb2diaspora.php
@@ -58,7 +58,7 @@ function bb2diaspora($Text,$preserve_nl = false) {
 	$Text = preg_replace("/\#\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", '[#$2]($1)', $Text);
 	$Text = preg_replace("/\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", '[$2]($1)', $Text);
 
-//	$Text = preg_replace("/\[img\](.*?)\[\/img\]/", t('Image/photo: ') . '$1', $Text);
+	$Text = preg_replace("/\[img\](.*?)\[\/img\]/", '![' . t('image/photo') . '](' . '$1' . ')', $Text);
 //	$Text = preg_replace("/\[img\](.*?)\[\/img\]/", t('image/photo'), $Text);
 
 	// Perform MAIL Search
diff --git a/include/diaspora.php b/include/diaspora.php
index fa5973e7b9..8c2640afc2 100644
--- a/include/diaspora.php
+++ b/include/diaspora.php
@@ -1376,6 +1376,7 @@ function diaspora_send_status($item,$owner,$contact,$public_batch = false) {
 
 	$body = $item['body'];
 
+/*
 	$cnt = preg_match_all('|\[img\](.*?)\[\/img\]|',$body,$matches,PREG_SET_ORDER);
 	if($cnt) {
 		foreach($matches as $mtch) {
@@ -1389,6 +1390,7 @@ function diaspora_send_status($item,$owner,$contact,$public_batch = false) {
 			$body = str_replace($detail['str'],$mtch[1],$body);
 		}
 	}	
+*/
 
 	$body = xmlify(html_entity_decode(bb2diaspora($body)));
 
diff --git a/include/profile_update.php b/include/profile_update.php
index 3828e90edc..f2a806cfd8 100644
--- a/include/profile_update.php
+++ b/include/profile_update.php
@@ -12,8 +12,8 @@ function profile_change() {
 		return;
 
 //   $url = $a->get_baseurl() . '/profile/' . $a->user['nickname'];
- //   if($url && strlen(get_config('system','directory_submit_url')))
-  //      proc_run('php',"include/directory.php","$url");
+//   if($url && strlen(get_config('system','directory_submit_url')))
+//      proc_run('php',"include/directory.php","$url");
 
 	$recips = q("SELECT DISTINCT(`batch`), `id`, `name`,`network` FROM `contact` WHERE `network` = '%s'
 		AND `uid` = %d AND `rel` != %d ORDER BY rand() ",
@@ -34,24 +34,25 @@ function profile_change() {
 		return;
 	$profile = $r[0];
 
-	$handle = $a->user['nickname'] . '@' . substr($a->get_baseurl(), strpos($a->get_baseurl(),'://') + 3);
-	$first = ((strpos($profile['name'],' '))
-		? trim(substr($profile['name'],0,strpos($profile['name'],' '))) : $profile['name']);
-	$last = (($first === $profile['name']) ? '' : trim(substr($profile['name'],strlen($first))));
-	$large = $a->get_baseurl() . '/photo/custom/300/' . $profile['uid'] . '.jpg';
-	$medium = $a->get_baseurl() . '/photo/custom/100/' . $profile['uid'] . '.jpg';
-	$small = $a->get_baseurl() . '/photo/custom/50/'  . $profile['uid'] . '.jpg';
-	$searchable = (($profile['publish'] && $profile['net-publish']) ? 'true' : 'false' );
+	$handle = xmlify($a->user['nickname'] . '@' . substr($a->get_baseurl(), strpos($a->get_baseurl(),'://') + 3));
+	$first = xmlify(((strpos($profile['name'],' '))
+		? trim(substr($profile['name'],0,strpos($profile['name'],' '))) : $profile['name']));
+	$last = xmlify((($first === $profile['name']) ? '' : trim(substr($profile['name'],strlen($first)))));
+	$large = xmlify($a->get_baseurl() . '/photo/custom/300/' . $profile['uid'] . '.jpg');
+	$medium = xmlify($a->get_baseurl() . '/photo/custom/100/' . $profile['uid'] . '.jpg');
+	$small = xmlify($a->get_baseurl() . '/photo/custom/50/'  . $profile['uid'] . '.jpg');
+	$searchable = xmlify((($profile['publish'] && $profile['net-publish']) ? 'true' : 'false' ));
+//	$searchable = 'true';
 
 	if($searchable === 'true') {
 		$dob = '1000-00-00';
 
 		if(($profile['dob']) && ($profile['dob'] != '0000-00-00'))
 			$dob = ((intval($profile['dob'])) ? intval($profile['dob']) : '1000') . '-' . datetime_convert('UTC','UTC',$profile['dob'],'m-d');
-		$gender = $profile['gender'];
-		$about = $profile['about'];
+		$gender = xmlify($profile['gender']);
+		$about = xmlify($profile['about']);
 		require_once('include/bbcode.php');
-		$about = strip_tags(bbcode($about));
+		$about = xmlify(strip_tags(bbcode($about)));
 		$location = '';
 		if($profile['locality'])
 			$location .= $profile['locality'];
@@ -65,6 +66,7 @@ function profile_change() {
 				$location .= ', ';
 			$location .= $profile['country-name'];
 		}
+		$location = xmlify($location);
 		$tags = '';
 		if($profile['pub_keywords']) {
 			$kw = str_replace(',',' ',$profile['pub_keywords']);
@@ -77,7 +79,7 @@ function profile_change() {
 				}
 			}
 		}
-		$tags = trim($tags);
+		$tags = xmlify(trim($tags));
 	}
 
 	$tpl = get_markup_template('diaspora_profile.tpl');
@@ -98,8 +100,8 @@ function profile_change() {
 	));
 	logger('profile_change: ' . $msg, LOGGER_ALL);
 
-	$msgtosend = diaspora_msg_build($msg,$a->user,null,$a->user['prvkey'],null,true);
 	foreach($recips as $recip) {
+		$msgtosend = diaspora_msg_build($msg,$a->user,$recip,$a->user['prvkey'],null,true);
 		add_to_queue($recip['id'],NETWORK_DIASPORA,$msgtosend,true);
 	}
 }

From 3512adda33328e8fbc9ccc810d2caf22513589a2 Mon Sep 17 00:00:00 2001
From: Friendika <info@friendika.com>
Date: Sun, 23 Oct 2011 19:05:32 -0700
Subject: [PATCH 4/4] never enough comments

---
 include/diaspora.php | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/include/diaspora.php b/include/diaspora.php
index 8c2640afc2..2379ae8e3e 100644
--- a/include/diaspora.php
+++ b/include/diaspora.php
@@ -1377,6 +1377,13 @@ function diaspora_send_status($item,$owner,$contact,$public_batch = false) {
 	$body = $item['body'];
 
 /*
+	// We're trying to match Diaspora's split message/photo protocol but
+	// all the photos are displayed on D* as links and not img's - even
+	// though we're sending pretty much precisely what they send us when
+	// doing the same operation.  
+	// Commented out for now, we'll use bb2diaspora to convert photos to markdown
+	// which seems to get through intact.
+
 	$cnt = preg_match_all('|\[img\](.*?)\[\/img\]|',$body,$matches,PREG_SET_ORDER);
 	if($cnt) {
 		foreach($matches as $mtch) {