From da7773a259bfd40b1c2346fb7c3900f2b67e8fec Mon Sep 17 00:00:00 2001 From: friendica Date: Thu, 7 Jun 2012 19:53:39 -0700 Subject: [PATCH] ostatus hub subscription issues --- include/follow.php | 13 +++++++++---- include/items.php | 1 + include/onepoll.php | 3 +++ 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/include/follow.php b/include/follow.php index d92d7577dc..22288a0daf 100644 --- a/include/follow.php +++ b/include/follow.php @@ -94,6 +94,9 @@ function new_contact($uid,$url,$interactive = false) { } $writeable = ((($ret['network'] === NETWORK_OSTATUS) && ($ret['notify'])) ? 1 : 0); + + $subhub = (($ret['network'] === NETWORK_OSTATUS) ? true : false); + $hidden = (($ret['network'] === NETWORK_MAIL) ? 1 : 0); if($ret['network'] === NETWORK_MAIL) { @@ -116,8 +119,9 @@ function new_contact($uid,$url,$interactive = false) { if(count($r)) { // update contact if($r[0]['rel'] == CONTACT_IS_FOLLOWER || ($network === NETWORK_DIASPORA && $r[0]['rel'] == CONTACT_IS_SHARING)) { - q("UPDATE `contact` SET `rel` = %d , `readonly` = 0 WHERE `id` = %d AND `uid` = %d LIMIT 1", + q("UPDATE `contact` SET `rel` = %d , `subhub` = %d, `readonly` = 0 WHERE `id` = %d AND `uid` = %d LIMIT 1", intval(CONTACT_IS_FRIEND), + intval($subhub), intval($r[0]['id']), intval($uid) ); @@ -131,8 +135,8 @@ function new_contact($uid,$url,$interactive = false) { // create contact record $r = q("INSERT INTO `contact` ( `uid`, `created`, `url`, `nurl`, `addr`, `alias`, `batch`, `notify`, `poll`, `poco`, `name`, `nick`, `photo`, `network`, `pubkey`, `rel`, `priority`, - `writable`, `hidden`, `blocked`, `readonly`, `pending` ) - VALUES ( %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, %d, %d, 0, 0, 0 ) ", + `writable`, `hidden`, `blocked`, `readonly`, `pending`, `subhub` ) + VALUES ( %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, %d, %d, 0, 0, 0, %d ) ", intval($uid), dbesc(datetime_convert()), dbesc($ret['url']), @@ -151,7 +155,8 @@ function new_contact($uid,$url,$interactive = false) { intval($new_relation), intval($ret['priority']), intval($writeable), - intval($hidden) + intval($hidden), + intval($subhub) ); } diff --git a/include/items.php b/include/items.php index fc6819738e..ccc11d5be7 100755 --- a/include/items.php +++ b/include/items.php @@ -1304,6 +1304,7 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0) $birthday = ''; $hubs = $feed->get_links('hub'); + logger('consume_feed: hubs: ' . print_r($hubs,true), LOGGER_DATA); if(count($hubs)) $hub = implode(',', $hubs); diff --git a/include/onepoll.php b/include/onepoll.php index a64922aa32..ba7d5ebaf5 100644 --- a/include/onepoll.php +++ b/include/onepoll.php @@ -477,6 +477,9 @@ function onepoll_run($argv, $argc){ if($contact['network'] === NETWORK_DFRN || $contact['blocked'] || $contact['readonly']) $hubmode = 'unsubscribe'; + if($contact['network'] === NETWORK_OSTATUS && (! $contact['hub-verify'])) + $hub_update = true; + if((strlen($hub)) && ($hub_update) && ($contact['rel'] != CONTACT_IS_FOLLOWER)) { logger('poller: hub ' . $hubmode . ' : ' . $hub . ' contact name : ' . $contact['name'] . ' local user : ' . $importer['name']); $hubs = explode(',', $hub);