From 644f31289625065d0a492b59fc3d0c5dce4ca478 Mon Sep 17 00:00:00 2001
From: Philipp <admin@philipp.info>
Date: Mon, 13 Sep 2021 20:22:55 +0200
Subject: [PATCH] Fix various Notices

---
 src/Model/Contact.php                  | 8 +++++---
 src/Model/Item.php                     | 4 ++--
 src/Module/Contact.php                 | 2 +-
 src/Protocol/ActivityPub/Processor.php | 2 +-
 src/Protocol/DFRN.php                  | 2 +-
 src/Protocol/Diaspora.php              | 2 +-
 src/Protocol/OStatus.php               | 2 +-
 7 files changed, 12 insertions(+), 10 deletions(-)

diff --git a/src/Model/Contact.php b/src/Model/Contact.php
index 93e745456a..51d162ae22 100644
--- a/src/Model/Contact.php
+++ b/src/Model/Contact.php
@@ -2757,12 +2757,14 @@ class Contact
 		return null;
 	}
 
-	public static function removeFollower($importer, $contact)
+	public static function removeFollower(array $contact)
 	{
-		if (($contact['rel'] == self::FRIEND) || ($contact['rel'] == self::SHARING)) {
+		if (!empty($contact['rel']) && (($contact['rel'] == self::FRIEND) || ($contact['rel'] == self::SHARING))) {
 			DBA::update('contact', ['rel' => self::SHARING], ['id' => $contact['id']]);
-		} else {
+		} elseif (!empty($contact['id'])) {
 			self::remove($contact['id']);
+		} else {
+			DI::logger()->info('Couldn\'t remove follower because of invalid contact array', ['contact' => $contact]);
 		}
 	}
 
diff --git a/src/Model/Item.php b/src/Model/Item.php
index 8327252abc..992c8d4710 100644
--- a/src/Model/Item.php
+++ b/src/Model/Item.php
@@ -2292,9 +2292,9 @@ class Item
 				continue;
 			} elseif (!$expire_starred && intval($item['starred'])) {
 				continue;
-			} elseif (!$expire_notes && ($item['post-type'] == self::PT_PERSONAL_NOTE)) {
+			} elseif (!$expire_notes && (($item['post-type'] ?? null) == self::PT_PERSONAL_NOTE)) {
 				continue;
-			} elseif (!$expire_items && ($item['post-type'] != self::PT_PERSONAL_NOTE)) {
+			} elseif (!$expire_items && (($item['post-type'] ?? null) != self::PT_PERSONAL_NOTE)) {
 				continue;
 			}
 
diff --git a/src/Module/Contact.php b/src/Module/Contact.php
index ceb2b6757c..0260e90f1f 100644
--- a/src/Module/Contact.php
+++ b/src/Module/Contact.php
@@ -293,7 +293,7 @@ class Contact extends BaseModule
 			$contact = DBA::selectFirst('contact', [], ['id' => $contact_id, 'uid' => [0, local_user()], 'deleted' => false]);
 
 			// Don't display contacts that are about to be deleted
-			if ($contact['network'] == Protocol::PHANTOM) {
+			if (DBA::isResult($contact) && !empty($contact['network']) && $contact['network'] == Protocol::PHANTOM) {
 				$contact = false;
 			}
 		}
diff --git a/src/Protocol/ActivityPub/Processor.php b/src/Protocol/ActivityPub/Processor.php
index 47a5300352..1fe527f407 100644
--- a/src/Protocol/ActivityPub/Processor.php
+++ b/src/Protocol/ActivityPub/Processor.php
@@ -1102,7 +1102,7 @@ class Processor
 			return;
 		}
 
-		Contact::removeFollower($owner, $contact);
+		Contact::removeFollower($contact);
 		Logger::info('Undo following request', ['contact' => $cid, 'user' => $uid]);
 	}
 
diff --git a/src/Protocol/DFRN.php b/src/Protocol/DFRN.php
index 4ccd259f21..6797608e61 100644
--- a/src/Protocol/DFRN.php
+++ b/src/Protocol/DFRN.php
@@ -1584,7 +1584,7 @@ class DFRN
 			}
 			if ($activity->match($item["verb"], Activity::UNFOLLOW)) {
 				Logger::log("Lost follower");
-				Contact::removeFollower($importer, $contact, $item);
+				Contact::removeFollower($contact);
 				return false;
 			}
 			if ($activity->match($item["verb"], Activity::REQ_FRIEND)) {
diff --git a/src/Protocol/Diaspora.php b/src/Protocol/Diaspora.php
index 48d7a3371c..8ab89d950f 100644
--- a/src/Protocol/Diaspora.php
+++ b/src/Protocol/Diaspora.php
@@ -2211,7 +2211,7 @@ class Diaspora
 				return true;
 			} else {
 				Logger::log("Author ".$author." doesn't want to follow us anymore.", Logger::DEBUG);
-				Contact::removeFollower($importer, $contact);
+				Contact::removeFollower($contact);
 				return true;
 			}
 		}
diff --git a/src/Protocol/OStatus.php b/src/Protocol/OStatus.php
index 2404db2df9..4f16f40f11 100644
--- a/src/Protocol/OStatus.php
+++ b/src/Protocol/OStatus.php
@@ -471,7 +471,7 @@ class OStatus
 
 			if ($item["verb"] == Activity::O_UNFOLLOW) {
 				$dummy = null;
-				Contact::removeFollower($importer, $contact, $item, $dummy);
+				Contact::removeFollower($contact);
 				continue;
 			}