diff options
-rwxr-xr-x | include/items.php | 8 | ||||
-rw-r--r-- | include/zot.php | 21 |
2 files changed, 13 insertions, 16 deletions
diff --git a/include/items.php b/include/items.php index d0b647a92..3936f1a6f 100755 --- a/include/items.php +++ b/include/items.php @@ -971,6 +971,14 @@ function import_author_diaspora($x) { if(! $x['address']) return false; + $r = q("select * from xchan where xchan_addr = '%s' limit 1", + dbesc($x['address']) + ); + if($r) { + logger('in_cache: ' . $x['address'], LOGGER_DATA); + return $r[0]['chan_hash']; + } + if(discover_by_webbie($x['address'])) { $r = q("select xchan_hash from xchan where xchan_addr = '%s' limit 1", dbesc($x['address']) diff --git a/include/zot.php b/include/zot.php index 3c7413b5c..d719f3177 100644 --- a/include/zot.php +++ b/include/zot.php @@ -2926,25 +2926,14 @@ function process_channel_sync_delivery($sender, $arr, $deliveries) { // Perform discovery if the referenced xchan hasn't ever been seen on this hub. // This relies on the undocumented behaviour that red sites send xchan info with the abook + // and import_author_xchan will look them up on all federated networks - if($abook['abook_xchan'] && $abook['xchan_address']) { + if($abook['abook_xchan'] && $abook['xchan_addr']) { $h = zot_get_hublocs($abook['abook_xchan']); if(! $h) { - $f = zot_finger($abook['xchan_address'],$channel); - if(! $f['success']) { - logger('process_channel_sync_delivery: abook not probe-able' . $abook['xchan_address']); - continue; - } - $j = json_decode($f['body'],true); - if(! ($j['success'] && $j['guid'])) { - logger('process_channel_sync_delivery: probe failed.'); - continue; - } - - $x = import_xchan($j); - - if(! $x['success']) { - logger('process_channel_sync_delivery: import failed.'); + $xhash = import_author_xchan(encode_item_xchan($abook)); + if(! $xhash) { + logger('process_channel_sync_delivery: import of ' . $abook['xchan_addr'] . ' failed.'); continue; } } |