]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - actions/foaf.php
FOAF was missing OStatus remote subscriptions, now fixed.
[quix0rs-gnu-social.git] / actions / foaf.php
index fc2ec9b12f20c9b0ac93d95c100e8bc200ef1ba4..fc56e19b4f5c4dbb37a37e4e7a9e1262fefcdbe9 100644 (file)
@@ -162,40 +162,29 @@ class FoafAction extends Action
 
         if ($sub->find()) {
             while ($sub->fetch()) {
-                if ($sub->token) {
-                    $other = Remote_profile::staticGet('id', $sub->subscriber);
-                    $profile = Profile::staticGet('id', $sub->subscriber);
-                } else {
-                    $other = User::staticGet('id', $sub->subscriber);
-                    $profile = Profile::staticGet('id', $sub->subscriber);
-                }
-                if (!$other) {
+                $profile = Profile::staticGet('id', $sub->subscriber);
+                if (empty($profile)) {
                     common_debug('Got a bad subscription: '.print_r($sub,true));
                     continue;
                 }
-                if (array_key_exists($other->uri, $person)) {
-                    $person[$other->uri][0] = BOTH;
+                $user = $profile->getUser();
+                $other_uri = $profile->getUri();
+                if (array_key_exists($other_uri, $person)) {
+                    $person[$other_uri][0] = BOTH;
                 } else {
-                    $person[$other->uri] = array(LISTENER,
-                                                 $other->id,
-                                                 $profile->nickname,
-                                                 (empty($sub->token)) ? 'User' : 'Remote_profile');
+                    $person[$other_uri] = array(LISTENER,
+                                                $profile->id,
+                                                $profile->nickname,
+                                                $user ? 'local' : 'remote');
                 }
-                $other->free();
-                $other = null;
-                unset($other);
-                $profile->free();
-                $profile = null;
                 unset($profile);
             }
         }
 
-        $sub->free();
-        $sub = null;
         unset($sub);
 
         foreach ($person as $uri => $p) {
-            list($type, $id, $nickname, $cls) = $p;
+            list($type, $id, $nickname, $local) = $p;
             if ($type == BOTH) {
                 $this->element('knows', array('rdf:resource' => $uri));
             }
@@ -206,8 +195,8 @@ class FoafAction extends Action
 
         foreach ($person as $uri => $p) {
             $foaf_url = null;
-            list($type, $id, $nickname, $cls) = $p;
-            if ($cls == 'User') {
+            list($type, $id, $nickname, $local) = $p;
+            if ($local == 'local') {
                 $foaf_url = common_local_url('foaf', array('nickname' => $nickname));
             }
             $profile = Profile::staticGet($id);
@@ -216,7 +205,7 @@ class FoafAction extends Action
                 $this->element('knows', array('rdf:resource' => $this->user->uri));
             }
             $this->showMicrobloggingAccount($profile,
-                                   ($cls == 'User') ? common_root_url() : null,
+                                   ($local == 'local') ? common_root_url() : null,
                                    $uri,
                                    true);
             if ($foaf_url) {
@@ -275,33 +264,22 @@ class FoafAction extends Action
 
             if ($sub->find()) {
                 while ($sub->fetch()) {
-                    if (!empty($sub->token)) {
-                        $other = Remote_profile::staticGet('id', $sub->subscribed);
-                        $profile = Profile::staticGet('id', $sub->subscribed);
-                    } else {
-                        $other = User::staticGet('id', $sub->subscribed);
-                        $profile = Profile::staticGet('id', $sub->subscribed);
-                    }
-                    if (empty($other)) {
+                    $profile = Profile::staticGet('id', $sub->subscribed);
+                    if (empty($profile)) {
                         common_debug('Got a bad subscription: '.print_r($sub,true));
                         continue;
                     }
-                    $this->element('sioc:follows', array('rdf:resource' => $other->uri.'#acct'));
-                    $person[$other->uri] = array(LISTENEE,
-                                                 $other->id,
-                                                 $profile->nickname,
-                                                 (empty($sub->token)) ? 'User' : 'Remote_profile');
-                    $other->free();
-                    $other = null;
-                    unset($other);
-                    $profile->free();
-                    $profile = null;
+                    $user = $profile->getUser();
+                    $other_uri = $profile->getUri();
+                    $this->element('sioc:follows', array('rdf:resource' => $other_uri.'#acct'));
+                    $person[$other_uri] = array(LISTENEE,
+                                                $profile->id,
+                                                $profile->nickname,
+                                                $user ? 'local' : 'remote');
                     unset($profile);
                 }
             }
 
-            $sub->free();
-            $sub = null;
             unset($sub);
         }