For GNU-social discovery, use the URI in the feed (author.uri) rather than try to pick out which of the aliases in webfinger are likely to be the right one. If we get it wrong, our communications with them will be discarded and there is no rhyme or reason to the logic about which representation is likely to be the one true account URI. It appears to vary with the clean_url setting of the site and this info isn't available to us except with a sequence of expensive probes and testing various ways of re-writing URLs to see if we get a response.
This commit is contained in:
parent
2e7d2a63c3
commit
222ace3770
@ -4118,22 +4118,26 @@ function feed_meta($xml) {
|
||||
$rawauthor = $feed->get_feed_tags(SIMPLEPIE_NAMESPACE_ATOM_10,'author');
|
||||
logger('rawauthor: ' . print_r($rawauthor,true));
|
||||
|
||||
if($rawauthor && $rawauthor[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['link']) {
|
||||
$base = $rawauthor[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['link'];
|
||||
foreach($base as $link) {
|
||||
if(!x($author, 'author_photo') || ! $author['author_photo']) {
|
||||
if($link['attribs']['']['rel'] === 'photo' || $link['attribs']['']['rel'] === 'avatar') {
|
||||
$author['author_photo'] = unxmlify($link['attribs']['']['href']);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if($rawauthor) {
|
||||
if($rawauthor[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['link']) {
|
||||
$base = $rawauthor[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['link'];
|
||||
foreach($base as $link) {
|
||||
if(!x($author, 'author_photo') || ! $author['author_photo']) {
|
||||
if($link['attribs']['']['rel'] === 'photo' || $link['attribs']['']['rel'] === 'avatar') {
|
||||
$author['author_photo'] = unxmlify($link['attribs']['']['href']);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if($rawauthor[0]['child'][NAMESPACE_POCO]['displayName'][0]['data'])
|
||||
$author['full_name'] = unxmlify($rawauthor[0]['child'][NAMESPACE_POCO]['displayName'][0]['data']);
|
||||
if($rawauthor[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data'])
|
||||
$author['author_uri'] = unxmlify($rawauthor[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data']);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if(substr($author['author_link'],-1,1) == '/')
|
||||
$author['author_link'] = substr($author['author_link'],0,-1);
|
||||
|
||||
|
@ -1265,6 +1265,12 @@ function discover_by_webbie($webbie) {
|
||||
if($feed_meta['author']['author_photo'])
|
||||
$avatar = $feed_meta['author']['author_photo'];
|
||||
}
|
||||
|
||||
// for GNU-social over-ride any url aliases we may have picked up in webfinger
|
||||
// The author.uri element in the feed is likely to be more accurate
|
||||
|
||||
if($gnusoc && $feed_meta['author']['author_uri'])
|
||||
$location = $feed_meta['author']['author_uri'];
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
Reference in New Issue
Block a user