]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - classes/Notice.php
Managed_DataObject now has listGet for all classes
[quix0rs-gnu-social.git] / classes / Notice.php
index 83d49f3d0f405a47fc8e5ee72bdd4b734067eed8..4f78343798e18ed571151f270eb8e5b0ae834520 100644 (file)
@@ -76,12 +76,6 @@ class Notice extends Managed_DataObject
     public $object_type;                     // varchar(255)
     public $scope;                           // int(4)
 
-    /* Static get */
-    function staticGet($k,$v=NULL)
-    {
-        return Memcached_DataObject::staticGet('Notice',$k,$v);
-    }
-
     /* the code above is auto generated do not remove the tag below */
     ###END_AUTOCODE
 
@@ -159,7 +153,7 @@ class Notice extends Managed_DataObject
     function getProfile()
     {
         if (is_int($this->_profile) && $this->_profile == -1) {
-            $this->_setProfile(Profile::staticGet('id', $this->profile_id));
+            $this->_setProfile(Profile::getKV('id', $this->profile_id));
 
             if (empty($this->_profile)) {
                 // TRANS: Server exception thrown when a user profile for a notice cannot be found.
@@ -183,10 +177,10 @@ class Notice extends Managed_DataObject
 
         // @fixme we have some cases where things get re-run and so the
         // insert fails.
-        $deleted = Deleted_notice::staticGet('id', $this->id);
+        $deleted = Deleted_notice::getKV('id', $this->id);
 
         if (!$deleted) {
-            $deleted = Deleted_notice::staticGet('uri', $this->uri);
+            $deleted = Deleted_notice::getKV('uri', $this->uri);
         }
 
         if (!$deleted) {
@@ -346,8 +340,8 @@ class Notice extends Managed_DataObject
             $is_local = Notice::LOCAL_PUBLIC;
         }
 
-        $profile = Profile::staticGet('id', $profile_id);
-        $user = User::staticGet('id', $profile_id);
+        $profile = Profile::getKV('id', $profile_id);
+        $user = User::getKV('id', $profile_id);
         if ($user) {
             // Use the local user's shortening preferences, if applicable.
             $final = $user->shortenLinks($content);
@@ -426,7 +420,7 @@ class Notice extends Managed_DataObject
 
             // Check for a private one
 
-            $repeat = Notice::staticGet('id', $repeat_of);
+            $repeat = Notice::getKV('id', $repeat_of);
 
             if (empty($repeat)) {
                 // TRANS: Client exception thrown in notice when trying to repeat a missing or deleted notice.
@@ -546,7 +540,7 @@ class Notice extends Managed_DataObject
         // Force the scope for private groups
 
         foreach ($groups as $groupId) {
-            $group = User_group::staticGet('id', $groupId);
+            $group = User_group::getKV('id', $groupId);
             if (!empty($group)) {
                 if ($group->force_scope) {
                     $notice->scope |= Notice::GROUP_SCOPE;
@@ -653,16 +647,16 @@ class Notice extends Managed_DataObject
             self::blow('notice:list-ids:repeat_of:%d', $this->repeat_of);
         }
 
-        $original = Notice::staticGet('id', $this->repeat_of);
+        $original = Notice::getKV('id', $this->repeat_of);
 
         if (!empty($original)) {
-            $originalUser = User::staticGet('id', $original->profile_id);
+            $originalUser = User::getKV('id', $original->profile_id);
             if (!empty($originalUser)) {
                 $this->blowStream('user:repeats_of_me:%d', $originalUser->id);
             }
         }
 
-        $profile = Profile::staticGet($this->profile_id);
+        $profile = Profile::getKV($this->profile_id);
 
         if (!empty($profile)) {
             $profile->blowNoticeCount();
@@ -729,7 +723,7 @@ class Notice extends Managed_DataObject
         if ($lastStr !== false) {
             $window     = explode(',', $lastStr);
             $lastID     = $window[0];
-            $lastNotice = Notice::staticGet('id', $lastID);
+            $lastNotice = Notice::getKV('id', $lastID);
             if (empty($lastNotice) // just weird
                 || strtotime($lastNotice->created) >= strtotime($this->created)) {
                 $c->delete($lastKey);
@@ -776,7 +770,7 @@ class Notice extends Managed_DataObject
     }
 
     static function checkDupes($profile_id, $content) {
-        $profile = Profile::staticGet($profile_id);
+        $profile = Profile::getKV($profile_id);
         if (empty($profile)) {
             return false;
         }
@@ -804,7 +798,7 @@ class Notice extends Managed_DataObject
     }
 
     static function checkEditThrottle($profile_id) {
-        $profile = Profile::staticGet($profile_id);
+        $profile = Profile::getKV($profile_id);
         if (empty($profile)) {
             return false;
         }
@@ -829,7 +823,7 @@ class Notice extends Managed_DataObject
             return $this->_attachments;
         }
                
-               $f2ps = Memcached_DataObject::listGet('File_to_post', 'post_id', array($this->id));
+        $f2ps = File_to_post::listGet('post_id', array($this->id));
                
                $ids = array();
                
@@ -1024,16 +1018,22 @@ class Notice extends Managed_DataObject
             $originalProfile = null;
             if ($this->repeat_of) {
                 // Check blocks against the original notice's poster as well.
-                $original = Notice::staticGet('id', $this->repeat_of);
+                $original = Notice::getKV('id', $this->repeat_of);
                 if ($original) {
                     $originalProfile = $original->getProfile();
                 }
             }
 
             foreach ($ni as $id => $source) {
-                $user = User::staticGet('id', $id);
-                if (empty($user) || $user->hasBlocked($profile) ||
-                    ($originalProfile && $user->hasBlocked($originalProfile))) {
+                try {
+                    $user = User::getKV('id', $id);
+                    if (empty($user) ||
+                        $user->hasBlocked($profile) ||
+                        ($originalProfile && $user->hasBlocked($originalProfile))) {
+                        unset($ni[$id]);
+                    }
+                } catch (UserNoProfileException $e) {
+                    // User doesn't have a profile; invalid; skip them.
                     unset($ni[$id]);
                 }
             }
@@ -1145,7 +1145,7 @@ class Notice extends Managed_DataObject
 
         $groups = array();
         foreach (array_unique($group_ids) as $id) {
-            $group = User_group::staticGet('id', $id);
+            $group = User_group::getKV('id', $id);
             if ($group) {
                 common_log(LOG_ERR, "Local delivery to group id $id, $group->nickname");
                 $result = $this->addToGroupInbox($group);
@@ -1259,7 +1259,7 @@ class Notice extends Managed_DataObject
             return;
         }
 
-        $sender = Profile::staticGet($this->profile_id);
+        $sender = Profile::getKV($this->profile_id);
 
         foreach (array_unique($uris) as $uri) {
 
@@ -1300,7 +1300,7 @@ class Notice extends Managed_DataObject
             return array();
         }
 
-        $sender = Profile::staticGet($this->profile_id);
+        $sender = Profile::getKV($this->profile_id);
 
         $replied = array();
 
@@ -1338,7 +1338,7 @@ class Notice extends Managed_DataObject
 
                 // Don't save replies from blocked profile to local user
 
-                $mentioned_user = User::staticGet('id', $mentioned->id);
+                $mentioned_user = User::getKV('id', $mentioned->id);
                 if (!empty($mentioned_user) && $mentioned_user->hasBlocked($sender)) {
                     continue;
                 }
@@ -1380,7 +1380,7 @@ class Notice extends Managed_DataObject
             return $this->_replies;
         }
 
-        $replyMap = Memcached_DataObject::listGet('Reply', 'notice_id', array($this->id));
+        $replyMap = Reply::listGet('notice_id', array($this->id));
 
         $ids = array();
 
@@ -1429,7 +1429,7 @@ class Notice extends Managed_DataObject
         $recipientIds = $this->getReplies();
 
         foreach ($recipientIds as $recipientId) {
-            $user = User::staticGet('id', $recipientId);
+            $user = User::getKV('id', $recipientId);
             if (!empty($user)) {
                 mail_notify_attn($user, $this);
             }
@@ -1458,7 +1458,7 @@ class Notice extends Managed_DataObject
             return $this->_groups;
         }
         
-        $gis = Memcached_DataObject::listGet('Group_inbox', 'notice_id', array($this->id));
+        $gis = Group_inbox::listGet('notice_id', array($this->id));
 
         $ids = array();
 
@@ -1487,7 +1487,7 @@ class Notice extends Managed_DataObject
      * @return Activity activity object representing this Notice.
      */
 
-    function asActivity($cur)
+    function asActivity($cur=null)
     {
         $act = self::cacheGet(Cache::codeKey('notice:as-activity:'.$this->id));
 
@@ -1498,9 +1498,8 @@ class Notice extends Managed_DataObject
 
         if (Event::handle('StartNoticeAsActivity', array($this, &$act))) {
 
-            $act->id      = $this->uri;
+            $act->id      = TagURI::mint("post:".$this->id);
             $act->time    = strtotime($this->created);
-            $act->link    = $this->bestUrl();
             $act->content = common_xml_safe_str($this->rendered);
 
             $profile = $this->getProfile();
@@ -1511,7 +1510,7 @@ class Notice extends Managed_DataObject
             $act->verb = $this->verb;
 
             if ($this->repeat_of) {
-                $repeated = Notice::staticGet('id', $this->repeat_of);
+                $repeated = Notice::getKV('id', $this->repeat_of);
                 if (!empty($repeated)) {
                     $act->objects[] = $repeated->asActivity($cur);
                 }
@@ -1547,7 +1546,7 @@ class Notice extends Managed_DataObject
             $ctx = new ActivityContext();
 
             if (!empty($this->reply_to)) {
-                $reply = Notice::staticGet('id', $this->reply_to);
+                $reply = Notice::getKV('id', $this->reply_to);
                 if (!empty($reply)) {
                     $ctx->replyToID  = $reply->uri;
                     $ctx->replyToUrl = $reply->bestUrl();
@@ -1559,7 +1558,7 @@ class Notice extends Managed_DataObject
             $conv = null;
 
             if (!empty($this->conversation)) {
-                $conv = Conversation::staticGet('id', $this->conversation);
+                $conv = Conversation::getKV('id', $this->conversation);
                 if (!empty($conv)) {
                     $ctx->conversation = $conv->uri;
                 }
@@ -1568,7 +1567,7 @@ class Notice extends Managed_DataObject
             $reply_ids = $this->getReplies();
 
             foreach ($reply_ids as $id) {
-                $rprofile = Profile::staticGet('id', $id);
+                $rprofile = Profile::getKV('id', $id);
                 if (!empty($rprofile)) {
                     $ctx->attention[] = $rprofile->getUri();
                     $ctx->attentionType[$rprofile->getUri()] = ActivityObject::PERSON;
@@ -1599,7 +1598,7 @@ class Notice extends Managed_DataObject
             $repeat = null;
 
             if (!empty($this->repeat_of)) {
-                $repeat = Notice::staticGet('id', $this->repeat_of);
+                $repeat = Notice::getKV('id', $this->repeat_of);
                 if (!empty($repeat)) {
                     $ctx->forwardID  = $repeat->uri;
                     $ctx->forwardUrl = $repeat->bestUrl();
@@ -1641,7 +1640,7 @@ class Notice extends Managed_DataObject
                     $act->source->updated = self::utcDate($notice->created);
                 }
 
-                $user = User::staticGet('id', $profile->id);
+                $user = User::getKV('id', $profile->id);
 
                 if (!empty($user)) {
                     $act->source->links['license'] = common_config('license', 'url');
@@ -1785,7 +1784,7 @@ class Notice extends Managed_DataObject
         // return it if it does
 
         if (!empty($reply_to)) {
-            $reply_notice = Notice::staticGet('id', $reply_to);
+            $reply_notice = Notice::getKV('id', $reply_to);
             if (!empty($reply_notice)) {
                 return $reply_notice;
             }
@@ -1810,7 +1809,7 @@ class Notice extends Managed_DataObject
 
         // Figure out who that is.
 
-        $sender = Profile::staticGet('id', $profile_id);
+        $sender = Profile::getKV('id', $profile_id);
         if (empty($sender)) {
             return null;
         }
@@ -1876,7 +1875,7 @@ class Notice extends Managed_DataObject
      */
     function repeat($repeater_id, $source)
     {
-        $author = Profile::staticGet('id', $this->profile_id);
+        $author = Profile::getKV('id', $this->profile_id);
 
         // TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
         // TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
@@ -2110,7 +2109,7 @@ class Notice extends Managed_DataObject
         // have to wait
         Event::handle('StartNoticeDistribute', array($this));
 
-        $user = User::staticGet('id', $this->profile_id);
+        $user = User::getKV('id', $this->profile_id);
         if (!empty($user)) {
             Inbox::insertNotice($user->id, $this->id);
         }
@@ -2181,11 +2180,11 @@ class Notice extends Managed_DataObject
                 $ns->code = $this->source;
                 break;
             default:
-                $ns = Notice_source::staticGet($this->source);
+                $ns = Notice_source::getKV($this->source);
                 if (!$ns) {
                     $ns = new Notice_source();
                     $ns->code = $this->source;
-                    $app = Oauth_application::staticGet('name', $this->source);
+                    $app = Oauth_application::getKV('name', $this->source);
                     if ($app) {
                         $ns->name = $app->name;
                         $ns->url  = $app->source_url;
@@ -2258,12 +2257,12 @@ class Notice extends Managed_DataObject
             return false;
         }
 
-        $notice = Notice::staticGet('id', $id);
+        $notice = Notice::getKV('id', $id);
         if ($notice) {
             return $notice->created;
         }
 
-        $deleted = Deleted_notice::staticGet('id', $id);
+        $deleted = Deleted_notice::getKV('id', $id);
         if ($deleted) {
             return $deleted->created;
         }
@@ -2543,7 +2542,7 @@ class Notice extends Managed_DataObject
             if (empty($this->reply_to)) {
                 $this->_original = null;
             } else {
-                $this->_original = Notice::staticGet('id', $this->reply_to);
+                $this->_original = Notice::getKV('id', $this->reply_to);
             }
         }
         return $this->_original;
@@ -2608,7 +2607,7 @@ class Notice extends Managed_DataObject
        {
         $ids = self::_idsOf($notices);
                
-               $gis = Memcached_DataObject::listGet('Group_inbox', 'notice_id', $ids);
+        $gis = Group_inbox::listGet('notice_id', $ids);
                
         $gids = array();
 
@@ -2649,7 +2648,7 @@ class Notice extends Managed_DataObject
     {
         $ids = self::_idsOf($notices);
 
-               $f2pMap = Memcached_DataObject::listGet('File_to_post', 'post_id', $ids);
+        $f2pMap = File_to_post::listGet('post_id', $ids);
                
                $fileIds = array();
                
@@ -2687,7 +2686,7 @@ class Notice extends Managed_DataObject
         if (isset($this->_faves) && is_array($this->_faves)) {
             return $this->_faves;
         }
-        $faveMap = Memcached_DataObject::listGet('Fave', 'notice_id', array($this->id));
+        $faveMap = Fave::listGet('notice_id', array($this->id));
         $this->_faves = $faveMap[$this->id];
         return $this->_faves;
     }
@@ -2700,7 +2699,7 @@ class Notice extends Managed_DataObject
     static function fillFaves(&$notices)
     {
         $ids = self::_idsOf($notices);
-        $faveMap = Memcached_DataObject::listGet('Fave', 'notice_id', $ids);
+        $faveMap = Fave::listGet('notice_id', $ids);
         $cnt = 0;
         $faved = array();
         foreach ($faveMap as $id => $faves) {
@@ -2718,7 +2717,7 @@ class Notice extends Managed_DataObject
     static function fillReplies(&$notices)
     {
         $ids = self::_idsOf($notices);
-        $replyMap = Memcached_DataObject::listGet('Reply', 'notice_id', $ids);
+        $replyMap = Reply::listGet('notice_id', $ids);
         foreach ($notices as $notice) {
             $replies = $replyMap[$notice->id];
             $ids = array();
@@ -2736,7 +2735,7 @@ class Notice extends Managed_DataObject
         if (isset($this->_repeats) && is_array($this->_repeats)) {
             return $this->_repeats;
         }
-        $repeatMap = Memcached_DataObject::listGet('Notice', 'repeat_of', array($this->id));
+        $repeatMap = Notice::listGet('repeat_of', array($this->id));
         $this->_repeats = $repeatMap[$this->id];
         return $this->_repeats;
     }
@@ -2749,7 +2748,7 @@ class Notice extends Managed_DataObject
     static function fillRepeats(&$notices)
     {
         $ids = self::_idsOf($notices);
-        $repeatMap = Memcached_DataObject::listGet('Notice', 'repeat_of', $ids);
+        $repeatMap = Notice::listGet('repeat_of', $ids);
         foreach ($notices as $notice) {
                $repeats = $repeatMap[$notice->id];
             $notice->_setRepeats($repeats);