]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - plugins/OStatus/OStatusPlugin.php
showAvatar requires a profile
[quix0rs-gnu-social.git] / plugins / OStatus / OStatusPlugin.php
index 0befe150ab6ae379f4361630a9f2eae0cc3d4c46..42ee9a43efb86a5299adfff1dfd5249d1e0f4be8 100644 (file)
@@ -423,7 +423,12 @@ class OStatusPlugin extends Plugin
     {
         $oprofile = $this->pullRemoteProfile($arg);
         if ($oprofile instanceof Ostatus_profile && !$oprofile->isGroup()) {
-            $profile = $oprofile->localProfile();
+            try {
+                $profile = $oprofile->localProfile();
+            } catch (NoProfileException $e) {
+                // No locally stored profile found for remote profile
+                return true;
+            }
             return false;
         } else {
             return true;
@@ -1258,9 +1263,8 @@ class OStatusPlugin extends Plugin
     public static function localGroupFromUrl($url)
     {
         $group = User_group::getKV('uri', $url);
-        if ($group) {
-            $local = Local_group::getKV('group_id', $group->id);
-            if ($local) {
+        if ($group instanceof User_group) {
+            if ($group->isLocal()) {
                 return $group->id;
             }
         } else {
@@ -1337,16 +1341,16 @@ class OStatusPlugin extends Plugin
         $xrd->links[] = new XML_XRD_Element_Link(Salmon::NS_REPLIES, $salmon_url);
         $xrd->links[] = new XML_XRD_Element_Link(Salmon::NS_MENTIONS, $salmon_url);
 
-        // Get this user's keypair
-        $magickey = Magicsig::getKV('user_id', $target->id);
-        if (!($magickey instanceof Magicsig)) {
-            // No keypair yet, let's generate one.
-            $magickey = new Magicsig();
-            $magickey->generate($target->id);
+        // Get this profile's keypair
+        $magicsig = Magicsig::getKV('user_id', $target->id);
+        if (!$magicsig instanceof Magicsig && $target->isLocal()) {
+            $magicsig = Magicsig::generate($target->getUser());
         }
 
-        $xrd->links[] = new XML_XRD_Element_Link(Magicsig::PUBLICKEYREL,
-                            'data:application/magic-public-key,'. $magickey->toString(false));
+        if ($magicsig instanceof Magicsig) {
+            $xrd->links[] = new XML_XRD_Element_Link(Magicsig::PUBLICKEYREL,
+                                'data:application/magic-public-key,'. $magicsig->toString());
+        }
 
         // TODO - finalize where the redirect should go on the publisher
         $xrd->links[] = new XML_XRD_Element_Link('http://ostatus.org/schema/1.0/subscribe',