From 352b7a0ac37f4f693a7b4e16f8a95546f9d8b3d9 Mon Sep 17 00:00:00 2001
From: Michael <heluecht@pirati.ca>
Date: Wed, 23 Nov 2022 14:00:34 +0000
Subject: [PATCH] "MIRROR_FORWARDED" is removed

---
 src/Core/Protocol.php          |  1 +
 src/Model/Contact.php          |  2 +-
 src/Model/Item.php             | 25 ++++++++++++++++++++++---
 src/Module/Contact/Profile.php |  1 -
 4 files changed, 24 insertions(+), 5 deletions(-)

diff --git a/src/Core/Protocol.php b/src/Core/Protocol.php
index 015612adea..096e12c27b 100644
--- a/src/Core/Protocol.php
+++ b/src/Core/Protocol.php
@@ -205,6 +205,7 @@ class Protocol
 			$slap = OStatus::salmon($item, $user);
 
 			if (empty($contact['notify'])) {
+				return true;
 				throw new \InvalidArgumentException('Missing expected "notify" key in OStatus/DFRN contact');
 			}
 
diff --git a/src/Model/Contact.php b/src/Model/Contact.php
index ce392217dd..e0c3c1682a 100644
--- a/src/Model/Contact.php
+++ b/src/Model/Contact.php
@@ -106,7 +106,7 @@ class Contact
 	 */
 
 	 const MIRROR_DEACTIVATED = 0;
-	 const MIRROR_FORWARDED = 1;
+	 const MIRROR_FORWARDED = 1; // Deprecated, now does the same like MIRROR_OWN_POST
 	 const MIRROR_OWN_POST = 2;
 	 const MIRROR_NATIVE_RESHARE = 3;
 
diff --git a/src/Model/Item.php b/src/Model/Item.php
index 6858baec0e..48c578e85f 100644
--- a/src/Model/Item.php
+++ b/src/Model/Item.php
@@ -823,19 +823,38 @@ class Item
 		$item['protocol'] = Conversation::PARCEL_DIRECT;
 		$item['direction'] = Conversation::PUSH;
 
-		if (!empty($item['author-link']) && !empty($item['author-id'])) {
-			$owner = User::getOwnerDataById($item['uid']);
+		$owner = User::getOwnerDataById($item['uid']);
+
+		if (empty($item['contact-id'])) {
+			$item['contact-id'] = $owner['id'];
+		}
+
+		if (empty($item['author-link']) && empty($item['author-id'])) {
 			$item['author-link']   = $owner['url'];
 			$item['author-name']   = $owner['name'];
 			$item['author-avatar'] = $owner['thumb'];
 		}
 
-		if (!empty($item['owner-link']) && !empty($item['owner-id'])) {
+		if (empty($item['owner-link']) && empty($item['owner-id'])) {
 			$item['owner-link']   = $item['author-link'];
 			$item['owner-name']   = $item['author-name'];
 			$item['owner-avatar'] = $item['author-avatar'];
 		}
 
+		// Setting the object type if not defined before
+		if (empty($item['object-type'])) {
+			$item['object-type'] = Activity\ObjectType::NOTE; // Default value
+			$objectdata = BBCode::getAttachedData($item['body']);
+
+			if ($objectdata['type'] == 'link') {
+				$item['object-type'] = Activity\ObjectType::BOOKMARK;
+			} elseif ($objectdata['type'] == 'video') {
+				$item['object-type'] = Activity\ObjectType::VIDEO;
+			} elseif ($objectdata['type'] == 'photo') {
+				$item['object-type'] = Activity\ObjectType::IMAGE;
+			}
+		}
+
 		return $item;
 	}
 
diff --git a/src/Module/Contact/Profile.php b/src/Module/Contact/Profile.php
index ecb25dd607..b3d0c03733 100644
--- a/src/Module/Contact/Profile.php
+++ b/src/Module/Contact/Profile.php
@@ -285,7 +285,6 @@ class Profile extends BaseModule
 		if ($contact['network'] == Protocol::FEED) {
 			$remote_self_options = [
 				Contact::MIRROR_DEACTIVATED => $this->t('No mirroring'),
-				Contact::MIRROR_FORWARDED   => $this->t('Mirror as forwarded posting'),
 				Contact::MIRROR_OWN_POST    => $this->t('Mirror as my own posting')
 			];
 		} elseif ($contact['network'] == Protocol::ACTIVITYPUB) {
-- 
2.39.5