diff options
author | friendica <info@friendica.com> | 2015-02-08 18:31:51 -0800 |
---|---|---|
committer | friendica <info@friendica.com> | 2015-02-08 18:31:51 -0800 |
commit | 64191de5e741fc1c365db45f197b2153c14e17c2 (patch) | |
tree | 45eb556afe2a8150393b3e659d5d4c168d24caf8 /include | |
parent | 7893b649552f23125835cd759ba00230b02a0ab3 (diff) | |
download | volse-hubzilla-64191de5e741fc1c365db45f197b2153c14e17c2.tar.gz volse-hubzilla-64191de5e741fc1c365db45f197b2153c14e17c2.tar.bz2 volse-hubzilla-64191de5e741fc1c365db45f197b2153c14e17c2.zip |
generate the correct service permalink
Diffstat (limited to 'include')
-rwxr-xr-x | include/diaspora.php | 10 | ||||
-rw-r--r-- | include/network.php | 24 |
2 files changed, 28 insertions, 6 deletions
diff --git a/include/diaspora.php b/include/diaspora.php index 736be4f08..22574f9f8 100755 --- a/include/diaspora.php +++ b/include/diaspora.php @@ -772,7 +772,6 @@ function diaspora_request($importer,$xml) { - function diaspora_post($importer,$xml,$msg) { $a = get_app(); @@ -898,8 +897,8 @@ function diaspora_post($importer,$xml,$msg) { } - // this won't work for Friendica or Redmatrix but it's probably the best we can do. - $plink = 'https://'.substr($diaspora_handle,strpos($diaspora_handle,'@')+1).'/posts/'.$guid; + $plink = service_plink($contact,$guid); + $datarray['uid'] = $importer['channel_id']; @@ -1116,8 +1115,7 @@ function diaspora_reshare($importer,$xml,$msg) { } } - // This won't work on redmatrix - $plink = 'https://'.substr($diaspora_handle,strpos($diaspora_handle,'@')+1).'/posts/'.$guid; + $plink = service_plink($contact,$guid); $datarray['uid'] = $importer['channel_id']; $datarray['mid'] = $datarray['parent_mid'] = $guid; @@ -1198,7 +1196,7 @@ function diaspora_asphoto($importer,$xml,$msg) { return; } - $plink = 'https://'.substr($diaspora_handle,strpos($diaspora_handle,'@')+1).'/posts/'.$guid; + $plink = service_plink($contact,$guid); $datarray = array(); diff --git a/include/network.php b/include/network.php index 224d9d5e1..366ac0d24 100644 --- a/include/network.php +++ b/include/network.php @@ -1523,3 +1523,27 @@ function scrape_feed($url) { return $ret; } + + +function service_plink($contact, $guid) { + + $plink = ''; + + $m = parse_url($contact['xchan_url']); + if($m) { + $url = $scheme . '://' . $m['host'] . (($m['port']) ? ':' . $m['port'] : ''); + } + else + $url = 'https://' . substr($contact['xchan_addr'],strpos($contact['xchan_addr'],'@')+1); + + $handle = substr($contact['xchan_addr'], 0, strpos($contact['xchan_addr'],'@')); + + if($contact['xchan_network'] === 'diaspora') + $plink = $url . '/posts/' . $guid; + if($contact['xchan_network'] === 'friendica-over-diaspora') + $plink = $url . '/display/' . $handle . '/' . $guid; + if($contact['xchan_network'] === 'zot') + $plink = $url . '/channel/' . $handle . '?f=&mid=' . $guid; + + return $plink; +} |