diff options
author | Friendika <info@friendika.com> | 2011-09-06 18:06:19 -0700 |
---|---|---|
committer | Friendika <info@friendika.com> | 2011-09-06 18:06:19 -0700 |
commit | a5125359d85afa056aee18a73692b6d1a587be47 (patch) | |
tree | 55b3715df1499528d4cfb2d7a488ccd0f61ab906 /include/network.php | |
parent | 18315a1377f212d56df61c5a5095892e8fcaf77f (diff) | |
download | volse-hubzilla-a5125359d85afa056aee18a73692b6d1a587be47.tar.gz volse-hubzilla-a5125359d85afa056aee18a73692b6d1a587be47.tar.bz2 volse-hubzilla-a5125359d85afa056aee18a73692b6d1a587be47.zip |
faster friend requests (DFRN)
Diffstat (limited to 'include/network.php')
-rw-r--r-- | include/network.php | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/include/network.php b/include/network.php index 2832ae2d3..deb257ff3 100644 --- a/include/network.php +++ b/include/network.php @@ -259,22 +259,29 @@ function convert_xml_element_to_array($xml_element, &$recursion_depth=0) { // or if the resultant personal XRD doesn't contain a supported // subscription/friend-request attribute. +// amended 7/9/2011 to return an hcard which could save potentially loading +// a lengthy content page to scrape dfrn attributes + if(! function_exists('webfinger_dfrn')) { -function webfinger_dfrn($s) { +function webfinger_dfrn($s,&$hcard) { if(! strstr($s,'@')) { return $s; } + $profile_link = ''; + $links = webfinger($s); logger('webfinger_dfrn: ' . $s . ':' . print_r($links,true), LOGGER_DATA); if(count($links)) { - foreach($links as $link) + foreach($links as $link) { if($link['@attributes']['rel'] === NAMESPACE_DFRN) - return $link['@attributes']['href']; - foreach($links as $link) + $profile_link = $link['@attributes']['href']; if($link['@attributes']['rel'] === NAMESPACE_OSTATUSSUB) - return 'stat:' . $link['@attributes']['template']; + $profile_link = 'stat:' . $link['@attributes']['template']; + if($link['@attributes']['rel'] === 'http://microformats.org/profile/hcard') + $hcard = $link['@attributes']['href']; + } } - return ''; + return $profile_link; }} // Given an email style address, perform webfinger lookup and |