X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=plugins%2FOStatus%2Fscripts%2Fupdate-profile.php;fp=plugins%2FOStatus%2Fscripts%2Fupdate-profile.php;h=3d726749202f82eb1471efc220b63899d174d076;hb=b63054cb1d45764db872c392728494dee0b9bf93;hp=ece19804420a1841d6a598ff98d1274137dae9ca;hpb=4de125dd843359c8a705c7c76eb2aa5f74efce68;p=quix0rs-gnu-social.git diff --git a/plugins/OStatus/scripts/update-profile.php b/plugins/OStatus/scripts/update-profile.php index ece1980442..3d72674920 100644 --- a/plugins/OStatus/scripts/update-profile.php +++ b/plugins/OStatus/scripts/update-profile.php @@ -54,10 +54,28 @@ print "\n"; print "Re-running feed discovery for profile URL $oprofile->uri\n"; // @fixme will bork where the URI isn't the profile URL for now $discover = new FeedDiscovery(); -$feedurl = $discover->discoverFromURL($oprofile->uri); +try { + $feedurl = $discover->discoverFromURL($oprofile->uri); + $salmonuri = $discover->getAtomLink(Salmon::REL_SALMON) + ?: $discover->getAtomLink(Salmon::NS_REPLIES); // NS_REPLIES is deprecated +} catch (FeedSubException $e) { + $acct = $oprofile->localProfile()->getAcctUri(); + print "Could not discover feeds HTML response, trying reconstructed acct URI: " . $acct; + $disco = new Discovery(); + $xrd = $disco->lookup($acct); + $hints = DiscoveryHints::fromXRD($xrd); + + if (!array_key_exists('feedurl', $hints)) { + throw new FeedSubNoFeedException($acct); + } + $feedurl = $hints['feedurl']; + $salmonuri = array_key_exists('salmon', $hints) ? $hints['salmon'] : null; + + // get the hub data too and put it in the FeedDiscovery object + $discover->discoverFromFeedUrl($feedurl); +} + $huburi = $discover->getHubLink(); -$salmonuri = $discover->getAtomLink(Salmon::REL_SALMON) - ?: $discover->getAtomLink(Salmon::NS_REPLIES); print " Feed URL: $feedurl\n"; print " Hub URL: $huburi\n";