From ca2bf76b06360d6bd3dc386d53c6d7301cd518f3 Mon Sep 17 00:00:00 2001 From: friendica Date: Thu, 4 Sep 2014 01:13:01 -0700 Subject: allow stuff with Diaspora authors to federate in zot conversations even if the local site has diaspora disabled. This way it won't look like folks are talking to themselves. --- include/follow.php | 6 ++++++ include/items.php | 17 +++++++++++++++++ include/network.php | 2 +- 3 files changed, 24 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/follow.php b/include/follow.php index e6c42aad1..058f5d60b 100644 --- a/include/follow.php +++ b/include/follow.php @@ -118,6 +118,12 @@ function new_contact($uid,$url,$channel,$interactive = false, $confirm = false) } } else { + if(! ($is_http)) { + if(! intval(get_config('system','diaspora_enabled'))) { + $result['message'] = t('Protocol disabled.'); + return $result; + } + } $my_perms = 0; $their_perms = 0; diff --git a/include/items.php b/include/items.php index 9d80b3a81..acdae90b2 100755 --- a/include/items.php +++ b/include/items.php @@ -871,6 +871,8 @@ function import_author_xchan($x) { if((! array_key_exists('network', $x)) || ($x['network'] === 'zot')) { $y = import_author_zot($x); } + if(! $y) + $y = import_author_diaspora($x); if($x['network'] === 'rss') { $y = import_author_rss($x); @@ -879,6 +881,21 @@ function import_author_xchan($x) { return(($y) ? $y : false); } + +function import_author_diaspora($x) { + if(! $x['address']) + return false; + if(discover_by_webbie($x['address'])) { + $r = q("select xchan_hash from xchan where xchan_addr = '%s' limit 1", + dbesc($x['address']) + ); + if($r) + return $r[0]['xchan_hash']; + } + return false; +} + + function import_author_rss($x) { if(! $x['url']) diff --git a/include/network.php b/include/network.php index 5ca60b5fe..5ad391491 100644 --- a/include/network.php +++ b/include/network.php @@ -1033,7 +1033,7 @@ function discover_by_webbie($webbie) { } } - if($diaspora && $diaspora_base && $diaspora_guid && intval(get_config('system','diaspora_enabled'))) { + if($diaspora && $diaspora_base && $diaspora_guid) { $guid = $diaspora_guid; $diaspora_base = trim($diaspora_base,'/'); -- cgit v1.2.3