]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Set otherwise undiscovered salmonuri on OStatus script update-profile.php
authorMikael Nordfeldth <mmn@hethane.se>
Sun, 4 Oct 2015 14:40:37 +0000 (16:40 +0200)
committerMikael Nordfeldth <mmn@hethane.se>
Sun, 4 Oct 2015 15:21:56 +0000 (17:21 +0200)
plugins/OStatus/lib/feeddiscovery.php
plugins/OStatus/scripts/update-profile.php

index d978cc6745c12550567fc703e3878d9c4fc5f0f1..e9c710bebdbbfa5010c4582cec6ff7a66c5b585e 100644 (file)
@@ -50,6 +50,10 @@ class FeedSubNoFeedException extends FeedSubException
 {
 }
 
+class FeedSubNoSalmonException extends FeedSubException
+{
+}
+
 class FeedSubBadXmlException extends FeedSubException
 {
 }
index 3d726749202f82eb1471efc220b63899d174d076..f20429cd8340327be686e41aad98879c383984d3 100755 (executable)
@@ -52,24 +52,31 @@ showProfile($oprofile);
 
 print "\n";
 print "Re-running feed discovery for profile URL $oprofile->uri\n";
+
+$feedurl = null;
+$salmonuri = null;
+
 // @fixme will bork where the URI isn't the profile URL for now
 $discover = new FeedDiscovery();
 try {
     $feedurl = $discover->discoverFromURL($oprofile->uri);
     $salmonuri = $discover->getAtomLink(Salmon::REL_SALMON)
                     ?: $discover->getAtomLink(Salmon::NS_REPLIES);  // NS_REPLIES is deprecated
+    if (empty($salmonuri) ) {
+        throw new FeedSubNoSalmonException('No salmon upstream URI was found');
+    }
 } catch (FeedSubException $e) {
     $acct = $oprofile->localProfile()->getAcctUri();
-    print "Could not discover feeds HTML response, trying reconstructed acct URI: " . $acct;
+    print "Could not discover feeds HTML response, trying reconstructed acct URI: {$acct}\n";
     $disco = new Discovery();
     $xrd = $disco->lookup($acct);
     $hints = DiscoveryHints::fromXRD($xrd);
 
-    if (!array_key_exists('feedurl', $hints)) {
+    if (empty($feedurl) && !array_key_exists('feedurl', $hints)) {
         throw new FeedSubNoFeedException($acct);
     }
-    $feedurl = $hints['feedurl'];
-    $salmonuri = array_key_exists('salmon', $hints) ? $hints['salmon'] : null;
+    $feedurl = $feedurl ?: $hints['feedurl'];
+    $salmonuri = array_key_exists('salmon', $hints) ? $hints['salmon'] : $salmonuri;
 
     // get the hub data too and put it in the FeedDiscovery object
     $discover->discoverFromFeedUrl($feedurl);