]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Non-replies cannot harvest parent notice nicknames
authorMikael Nordfeldth <mmn@hethane.se>
Thu, 16 Jul 2015 10:53:10 +0000 (12:53 +0200)
committerMikael Nordfeldth <mmn@hethane.se>
Thu, 16 Jul 2015 10:53:10 +0000 (12:53 +0200)
A feature we use of parent notices is that if you use the same @user
as the parent notice, the same @user will be notified, regardless if
there might be @user@site.com as well as @user@example.com and you're
subscribed to just one of them (or both, or none of them!).

But this threw an exception since we tested this on new notice threads.

lib/util.php

index 4d696510892a0e0c17b266cb7b97beff537e3c1d..4949231c520545a7cb9295dfa982a696ec010fd5 100644 (file)
@@ -710,18 +710,22 @@ function common_find_mentions($text, Notice $notice)
 
         // Is it a reply?
 
-        $origNotice = $notice->getParent();
-        $origAuthor = $origNotice->getProfile();
+        try {
+            $origNotice = $notice->getParent();
+            $origAuthor = $origNotice->getProfile();
 
-        $ids = $origNotice->getReplies();
+            $ids = $origNotice->getReplies();
 
-        foreach ($ids as $id) {
-            try {
-                $repliedTo = Profile::getByID($id);
-                $origMentions[$repliedTo->nickname] = $repliedTo;
-            } catch (NoResultException $e) {
-                // continue foreach
+            foreach ($ids as $id) {
+                try {
+                    $repliedTo = Profile::getByID($id);
+                    $origMentions[$repliedTo->getNickname()] = $repliedTo;
+                } catch (NoResultException $e) {
+                    // continue foreach
+                }
             }
+        } catch (NoParentNoticeException $e) {
+            // It wasn't a reply to anything, so we can't harvest nickname-relations.
         }
 
         $matches = common_find_mentions_raw($text);