]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Less redundant code.
authorMikael Nordfeldth <mmn@hethane.se>
Wed, 15 Jul 2015 17:21:21 +0000 (19:21 +0200)
committerMikael Nordfeldth <mmn@hethane.se>
Wed, 15 Jul 2015 17:21:21 +0000 (19:21 +0200)
classes/Memcached_DataObject.php
classes/Notice.php
lib/util.php

index c1f6f644db010d9e85e4d121b73474f3cb547724..41ce715210bec85bcf8f4cf314475a99a34c084c 100644 (file)
@@ -74,7 +74,7 @@ class Memcached_DataObject extends Safe_DataObject
     {
         $obj = new $cls;
 
-        // php-compatible, for settype(), datatype
+        // PHP compatible datatype for settype() below
         $colType = $obj->columnType($keyCol);
 
         if (!in_array($colType, array('integer', 'int'))) {
index ae722138b33b91b4a7652dfed5ecb6330c104d55..6301f9ce6277c50069cc28f6e24b4a4574ed1473 100644 (file)
@@ -1656,32 +1656,22 @@ class Notice extends Managed_DataObject
     protected $_replies = array();
 
     /**
-     * Pull the complete list of @-reply targets for this notice.
+     * Pull the complete list of @-mentioned profile IDs for this notice.
      *
      * @return array of integer profile ids
      */
     function getReplies()
     {
-        if (isset($this->_replies[$this->id])) {
-            return $this->_replies[$this->id];
+        if (!isset($this->_replies[$this->getID()])) {
+            $mentions = Reply::multiGet('notice_id', array($this->getID()));
+            $this->_replies[$this->getID()] = $mentions->fetchAll('profile_id');
         }
-
-        $replyMap = Reply::listGet('notice_id', array($this->id));
-
-        $ids = array();
-
-        foreach ($replyMap[$this->id] as $reply) {
-            $ids[] = $reply->profile_id;
-        }
-
-        $this->_replies[$this->id] = $ids;
-
-        return $ids;
+        return $this->_replies[$this->getID()];
     }
 
     function _setReplies($replies)
     {
-        $this->_replies[$this->id] = $replies;
+        $this->_replies[$this->getID()] = $replies;
     }
 
     /**
index f29d9559b9b7af119a2c1499b5201b1e951cf7d6..4d696510892a0e0c17b266cb7b97beff537e3c1d 100644 (file)
@@ -710,25 +710,17 @@ function common_find_mentions($text, Notice $notice)
 
         // Is it a reply?
 
-        if ($notice instanceof Notice) {
-            try {
-                $origNotice = $notice->getParent();
-                $origAuthor = $origNotice->getProfile();
+        $origNotice = $notice->getParent();
+        $origAuthor = $origNotice->getProfile();
 
-                $ids = $origNotice->getReplies();
+        $ids = $origNotice->getReplies();
 
-                foreach ($ids as $id) {
-                    $repliedTo = Profile::getKV('id', $id);
-                    if ($repliedTo instanceof Profile) {
-                        $origMentions[$repliedTo->nickname] = $repliedTo;
-                    }
-                }
-            } catch (NoProfileException $e) {
-                common_log(LOG_WARNING, sprintf('Notice %d author profile id %d does not exist', $origNotice->id, $origNotice->profile_id));
-            } catch (NoParentNoticeException $e) {
-                // This notice is not in reply to anything
-            } catch (Exception $e) {
-                common_log(LOG_WARNING, __METHOD__ . ' got exception ' . get_class($e) . ' : ' . $e->getMessage());
+        foreach ($ids as $id) {
+            try {
+                $repliedTo = Profile::getByID($id);
+                $origMentions[$repliedTo->nickname] = $repliedTo;
+            } catch (NoResultException $e) {
+                // continue foreach
             }
         }