]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - plugins/OStatus/lib/ostatusqueuehandler.php
Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing
[quix0rs-gnu-social.git] / plugins / OStatus / lib / ostatusqueuehandler.php
index c1e50bffa1e50a8cb48839e519f2facc4187aab6..d1e58f1d68ec2b83925b9faa98043b2da1fd5dff 100644 (file)
@@ -83,23 +83,11 @@ class OStatusQueueHandler extends QueueHandler
     function pingReply($oprofile)
     {
         if ($this->user) {
-            if (!empty($oprofile->salmonuri)) {
-                // For local posts, send a Salmon ping to the mentioned
-                // remote user or group.
-                // @fixme as an optimization we can skip this if the
-                // remote profile is subscribed to the author.
-
-                common_log(LOG_INFO, "Prepping to send notice '{$this->notice->uri}' to remote profile '{$oprofile->uri}'.");
-
-                $xml = '<?xml version="1.0" encoding="UTF-8" ?' . '>';
-                $xml .= $this->notice->asAtomEntry(true, true);
-
-                $data = array('salmonuri' => $oprofile->salmonuri,
-                              'entry' => $xml);
-
-                $qm = QueueManager::get();
-                $qm->enqueue($data, 'salmonout');
-            }
+            // For local posts, send a Salmon ping to the mentioned
+            // remote user or group.
+            // @fixme as an optimization we can skip this if the
+            // remote profile is subscribed to the author.
+            $oprofile->notifyDeferred($this->notice, $this->user);
         }
     }
 
@@ -176,46 +164,21 @@ class OStatusQueueHandler extends QueueHandler
      */
     function userFeedForNotice()
     {
-        // @fixme this feels VERY hacky...
-        // should probably be a cleaner way to do it
-
-        ob_start();
-        $api = new ApiTimelineUserAction();
-        $api->prepare(array('id' => $this->notice->profile_id,
-                            'format' => 'atom',
-                            'max_id' => $this->notice->id,
-                            'since_id' => $this->notice->id - 1));
-        $api->showTimeline();
-        $feed = ob_get_clean();
-        
-        // ...and override the content-type back to something normal... eww!
-        // hope there's no other headers that got set while we weren't looking.
-        header('Content-Type: text/html; charset=utf-8');
-
-        common_log(LOG_DEBUG, $feed);
+        $atom = new AtomUserNoticeFeed($this->user);
+        $atom->addEntryFromNotice($this->notice);
+        $feed = $atom->getString();
+
         return $feed;
     }
 
     function groupFeedForNotice($group_id)
     {
-        // @fixme this feels VERY hacky...
-        // should probably be a cleaner way to do it
-
-        ob_start();
-        $api = new ApiTimelineGroupAction();
-        $args = array('id' => $group_id,
-                      'format' => 'atom',
-                      'max_id' => $this->notice->id,
-                      'since_id' => $this->notice->id - 1);
-        $api->prepare($args);
-        $api->handle($args);
-        $feed = ob_get_clean();
-        
-        // ...and override the content-type back to something normal... eww!
-        // hope there's no other headers that got set while we weren't looking.
-        header('Content-Type: text/html; charset=utf-8');
-
-        common_log(LOG_DEBUG, $feed);
+        $group = User_group::staticGet('id', $group_id);
+
+        $atom = new AtomGroupNoticeFeed($group);
+        $atom->addEntryFromNotice($this->notice);
+        $feed = $atom->getString();
+
         return $feed;
     }