]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - actions/apisearchatom.php
Handle selfLink in ActivityObject
[quix0rs-gnu-social.git] / actions / apisearchatom.php
index 6743e92c84648ed8e3c13b862915cc59e9125557..def999e63244d56ddda88dc45996717325265147 100644 (file)
@@ -31,8 +31,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) {
     exit(1);
 }
 
-require_once INSTALLDIR.'/lib/apiprivateauth.php';
-
 /**
  * Action for outputting search results in Twitter compatible Atom
  * format.
@@ -92,8 +90,6 @@ class ApiSearchAtomAction extends ApiPrivateAuthAction
      */
     function prepare($args)
     {
-        common_debug("in apisearchatom prepare()");
-
         parent::prepare($args);
 
         $this->query = $this->trimmed('q');
@@ -114,7 +110,7 @@ class ApiSearchAtomAction extends ApiPrivateAuthAction
             $this->page = 1;
         }
 
-        // TODO: Suppport since_id -- we need to tweak the backend
+        // TODO: Suppport max_id -- we need to tweak the backend
         // Search classes to support it.
 
         $this->since_id = $this->trimmed('since_id');
@@ -177,6 +173,10 @@ class ApiSearchAtomAction extends ApiPrivateAuthAction
                     $this->max_id = $notice->id;
                 }
 
+                if ($this->since_id && $notice->id <= $this->since_id) {
+                    break;
+                }
+
                 if ($cnt > $this->rpp) {
                     break;
                 }
@@ -327,7 +327,7 @@ class ApiSearchAtomAction extends ApiPrivateAuthAction
                                      'rel'  => 'alternate',
                                      'href' => $nurl));
         $this->element('title', null, common_xml_safe_str(trim($notice->content)));
-        $this->element('content', array('type' => 'html'), $notice->rendered);
+        $this->element('content', array('type' => 'html'), $notice->getRendered());
         $this->element('updated', null, common_date_w3dtf($notice->created));
         $this->element('link', array('type' => 'image/png',
                                      // XXX: Twitter uses rel="image" (not valid)
@@ -337,21 +337,21 @@ class ApiSearchAtomAction extends ApiPrivateAuthAction
         // @todo: Here is where we'd put in a link to an atom feed for threads
 
         $source = null;
+        $source_link = null;
 
         $ns = $notice->getSource();
-        if ($ns) {
-            if (!empty($ns->name) && !empty($ns->url)) {
-                $source = '<a href="'
-                   . htmlspecialchars($ns->url)
-                   . '" rel="nofollow">'
-                   . htmlspecialchars($ns->name)
-                   . '</a>';
-            } else {
-                $source = $ns->code;
+        if ($ns instanceof Notice_source) {
+            $source = $ns->code;
+            if (!empty($ns->url)) {
+                $source_link = $ns->url;
+                if (!empty($ns->name)) {
+                    $source = $ns->name;
+                }
             }
         }
 
         $this->element("twitter:source", null, $source);
+        $this->element("twitter:source_link", null, $source_link);
 
         $this->elementStart('author');