From: Mikael Nordfeldth Date: Sun, 4 Oct 2015 14:40:37 +0000 (+0200) Subject: Set otherwise undiscovered salmonuri on OStatus script update-profile.php X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=2970333adb7b9cc96dfdbd0097bdf3dbe6b43f42;p=quix0rs-gnu-social.git Set otherwise undiscovered salmonuri on OStatus script update-profile.php --- diff --git a/plugins/OStatus/lib/feeddiscovery.php b/plugins/OStatus/lib/feeddiscovery.php index d978cc6745..e9c710bebd 100644 --- a/plugins/OStatus/lib/feeddiscovery.php +++ b/plugins/OStatus/lib/feeddiscovery.php @@ -50,6 +50,10 @@ class FeedSubNoFeedException extends FeedSubException { } +class FeedSubNoSalmonException extends FeedSubException +{ +} + class FeedSubBadXmlException extends FeedSubException { } diff --git a/plugins/OStatus/scripts/update-profile.php b/plugins/OStatus/scripts/update-profile.php index 3d72674920..f20429cd83 100755 --- a/plugins/OStatus/scripts/update-profile.php +++ b/plugins/OStatus/scripts/update-profile.php @@ -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);