From: Michael <heluecht@pirati.ca>
Date: Thu, 15 Jun 2017 20:50:53 +0000 (+0000)
Subject: We now use the new Diaspora format while sending
X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=648249500116ea0ce9484b15f73c1440fd3bf5c8;p=friendica.git

We now use the new Diaspora format while sending
---

diff --git a/include/diaspora.php b/include/diaspora.php
index 62c77f5b2f..49871fb598 100644
--- a/include/diaspora.php
+++ b/include/diaspora.php
@@ -29,6 +29,8 @@ require_once 'include/cache.php';
  */
 class Diaspora {
 
+	private static $new = false;
+
 	/**
 	 * @brief Return a list of relay servers
 	 *
@@ -2949,7 +2951,11 @@ class Diaspora {
 	 */
 	public static function build_post_xml($type, $message) {
 
-		$data = array("XML" => array("post" => array($type => $message)));
+		if (!self::$new) {
+			$data = array("XML" => array("post" => array($type => $message)));
+		} else {
+			$data = array($type => $message);
+		}
 		return xml::from_array($data, $xml);
 	}
 
@@ -3193,6 +3199,8 @@ class Diaspora {
 	 */
 	public static function build_status($item, $owner) {
 
+		self::$new = true;
+
 		$cachekey = "diaspora:build_status:".$item['guid'];
 
 		$result = Cache::get($cachekey);
@@ -3206,15 +3214,17 @@ class Diaspora {
 
 		$created = datetime_convert("UTC", "UTC", $item["created"], 'Y-m-d\TH:i:s\Z');
 
+		//self::$new = Config::get('system', 'new_diaspora', null, true);
+
 		// Detect a share element and do a reshare
 		if (!$item['private'] && ($ret = self::is_reshare($item["body"]))) {
-			$message = array("root_diaspora_id" => $ret["root_handle"],
-					"root_guid" => $ret["root_guid"],
+			$message = array("author" => $myaddr,
 					"guid" => $item["guid"],
-					"diaspora_handle" => $myaddr,
-					"public" => $public,
 					"created_at" => $created,
-					"provider_display_name" => $item["app"]);
+					"root_author" => $ret["root_handle"],
+					"root_guid" => $ret["root_guid"],
+					"provider_display_name" => $item["app"],
+					"public" => $public);
 
 			$type = "reshare";
 		} else {
@@ -3248,13 +3258,13 @@ class Diaspora {
 				$location["lng"] = $coord[1];
 			}
 
-			$message = array("raw_message" => $body,
-					"location" => $location,
+			$message = array("author" => $myaddr,
 					"guid" => $item["guid"],
-					"diaspora_handle" => $myaddr,
-					"public" => $public,
 					"created_at" => $created,
-					"provider_display_name" => $item["app"]);
+					"public" => $public,
+					"text" => $body,
+					"provider_display_name" => $item["app"],
+					"location" => $location);
 
 			// Diaspora rejects messages when they contain a location without "lat" or "lng"
 			if (!isset($location["lat"]) || !isset($location["lng"])) {
@@ -3267,7 +3277,7 @@ class Diaspora {
 					$message['event'] = $event;
 
 					/// @todo Once Diaspora supports it, we will remove the body
-					// $message['raw_message'] = '';
+					// $message['text'] = '';
 				}
 			}
 
@@ -3308,6 +3318,8 @@ class Diaspora {
 	 */
 	private static function construct_like($item, $owner) {
 
+		self::$new = true;
+
 		$p = q("SELECT `guid`, `uri`, `parent-uri` FROM `item` WHERE `uri` = '%s' LIMIT 1",
 			dbesc($item["thr-parent"]));
 		if (!dbm::is_result($p))
@@ -3322,12 +3334,12 @@ class Diaspora {
 			$positive = "false";
 		}
 
-		return(array("positive" => $positive,
+		return(array("author" => self::my_handle($owner),
 				"guid" => $item["guid"],
-				"target_type" => $target_type,
 				"parent_guid" => $parent["guid"],
-				"author_signature" => "",
-				"diaspora_handle" => self::my_handle($owner)));
+				"parent_type" => $target_type,
+				"positive" => $positive,
+				"author_signature" => ""));
 	}
 
 	/**
@@ -3340,6 +3352,8 @@ class Diaspora {
 	 */
 	private static function construct_attend($item, $owner) {
 
+		self::$new = true;
+
 		$p = q("SELECT `guid`, `uri`, `parent-uri` FROM `item` WHERE `uri` = '%s' LIMIT 1",
 			dbesc($item["thr-parent"]));
 		if (!dbm::is_result($p))
@@ -3379,6 +3393,8 @@ class Diaspora {
 	 */
 	private static function construct_comment($item, $owner) {
 
+		self::$new = true;
+
 		$cachekey = "diaspora:construct_comment:".$item['guid'];
 
 		$result = Cache::get($cachekey);
@@ -3399,12 +3415,12 @@ class Diaspora {
 		$text = html_entity_decode(bb2diaspora($item["body"]));
 		$created = datetime_convert("UTC", "UTC", $item["created"], 'Y-m-d\TH:i:s\Z');
 
-		$comment = array("guid" => $item["guid"],
+		$comment = array("author" => self::my_handle($owner),
+				"guid" => $item["guid"],
+				"created_at" => $created,
 				"parent_guid" => $parent["guid"],
-				"author_signature" => "",
 				"text" => $text,
-				/// @todo Currently disabled until Diaspora supports it: "created_at" => $created,
-				"diaspora_handle" => self::my_handle($owner));
+				"author_signature" => "");
 
 		// Send the thread parent guid only if it is a threaded comment
 		if ($item['thr-parent'] != $item['parent-uri']) {
@@ -3612,6 +3628,8 @@ class Diaspora {
 	 */
 	public static function send_mail($item, $owner, $contact) {
 
+		self::$new = true;
+
 		$myaddr = self::my_handle($owner);
 
 		$r = q("SELECT * FROM `conv` WHERE `id` = %d AND `uid` = %d LIMIT 1",
@@ -3626,11 +3644,11 @@ class Diaspora {
 		$cnv = $r[0];
 
 		$conv = array(
+			"author" => $cnv["creator"],
 			"guid" => $cnv["guid"],
 			"subject" => $cnv["subject"],
 			"created_at" => datetime_convert("UTC", "UTC", $cnv['created'], 'Y-m-d\TH:i:s\Z'),
-			"diaspora_handle" => $cnv["creator"],
-			"participant_handles" => $cnv["recips"]
+			"participants" => $cnv["recips"]
 		);
 
 		$body = bb2diaspora($item["body"]);
@@ -3640,26 +3658,27 @@ class Diaspora {
 		$sig = base64_encode(rsa_sign($signed_text, $owner["uprvkey"], "sha256"));
 
 		$msg = array(
+			"author" => $myaddr,
 			"guid" => $item["guid"],
-			"parent_guid" => $cnv["guid"],
-			"parent_author_signature" => $sig,
-			"author_signature" => $sig,
+			"conversation_guid" => $cnv["guid"],
 			"text" => $body,
 			"created_at" => $created,
-			"diaspora_handle" => $myaddr,
-			"conversation_guid" => $cnv["guid"]
+			//"parent_guid" => $cnv["guid"],
+			//"parent_author_signature" => $sig,
+			//"author_signature" => $sig,
 		);
 
 		if ($item["reply"]) {
 			$message = $msg;
 			$type = "message";
 		} else {
-			$message = array("guid" => $cnv["guid"],
+			$message = array(
+					"author" => $cnv["creator"],
+					"guid" => $cnv["guid"],
 					"subject" => $cnv["subject"],
 					"created_at" => datetime_convert("UTC", "UTC", $cnv['created'], 'Y-m-d\TH:i:s\Z'),
-					"message" => $msg,
-					"diaspora_handle" => $cnv["creator"],
-					"participant_handles" => $cnv["recips"]);
+					"participants" => $cnv["recips"],
+					"message" => $msg);
 
 			$type = "conversation";
 		}