* - send comment
* - send like
* - send mail
+ * - send status retraction
+ * - send comment retraction on own post
+ * - send comment retraction on diaspora post
+ * - send like retraction on own post
+ * - send like retraction on diaspora post
* - receive status
* - receive reshare
* - receive comment
* - receive connect request
* - receive profile data
* - receive mail
+ * - receive comment retraction
+ * - receive like retraction
* - relay comment
* - relay like
- * -
- * -
+ * - relay comment retraction from diaspora
+ * - relay comment retraction from friendica
+ * - relay like retraction from diaspora
+ * - relay like retraction from friendica
*
- * Unchecked:
+ * Should work:
* - receive account deletion
* - send share
* - send unshare
- * - send status retraction
- * - send comment retraction
- * - send like retraction
- * - relay comment retraction
- * - relay like retraction
- * -
+ *
+ * Unchecked:
*/
require_once("include/items.php");
intval($item["id"]));
if (!$r) {
- logger("Couldn't fetch signatur for contact ".$contact["addr"]." at item ".$item["guid"]." (".$item["id"].")", LOGGER_DEBUG);
+ if ($item["deleted"])
+ return self::send_retraction($item, $owner, $contact, $public_batch);
+
+ logger("Couldn't fetch signatur for item ".$item["guid"]." (".$item["id"].")", LOGGER_DEBUG);
return false;
}
public static function send_retraction($item, $owner, $contact, $public_batch = false) {
+ /// @todo Fetch handle from every contact (via gcontact)
+ $itemaddr = self::handle_from_contact($item["contact-id"]);
+
$myaddr = self::my_handle($owner);
// Check whether the retraction is for a top-level post or whether it's a relayable
$message = array("target_guid" => $item['guid'],
"target_type" => $target_type,
- "sender_handle" => $myaddr,
+ "sender_handle" => $itemaddr,
"target_author_signature" => base64_encode(rsa_sign($signed_text,$owner['uprvkey'],'sha256')));
+ if ($itemaddr != $myaddr) {
+ $message["parent_author_signature"] = $message["target_author_signature"];
+ unset($message["target_author_signature"]);
+ }
+
+ logger("Got message ".print_r($message, true), LOGGER_DEBUG);
+
return self::build_and_transmit($owner, $contact, $msg_type, $message, $public_batch, $item["guid"]);
}