- if(get_config('system','dfrn_only') || (! get_config('system','diaspora_enabled')) || (! $normal_mode)) {
- logger('notifier: diaspora pubdelivery not allowed at this time');
- break;
- }
-
- if(! $contact['pubkey']) {
- logger('notifier: diaspora pubdelivery: no pubkey');
- break;
- }
-
- if($target_item['verb'] === ACTIVITY_DISLIKE) {
- // unsupported
- break;
- }
- elseif(($target_item['deleted']) && ($target_item['verb'] !== ACTIVITY_LIKE)) {
- // diaspora delete,
- diaspora_send_retraction($target_item,$owner,$contact);
- break;
- }
- elseif($followup) {
- // send comments, likes and retractions of likes to owner to relay
- diaspora_send_followup($target_item,$owner,$contact);
- break;
- }
- elseif($target_item['parent'] != $target_item['id']) {
- // we are the relay - send comments, likes and unlikes to our conversants
- diaspora_send_relay($target_item,$owner,$contact);
- break;
- }
- elseif($top_level) {
- diaspora_send_status($target_item,$owner,$contact);
- break;
- }
- default:
- break;
- }
+ if(strlen($hub)) {
+ $hubs = explode(',', $hub);
+ if(count($hubs)) {
+ foreach($hubs as $h) {
+ $h = trim($h);
+ if(! strlen($h))
+ continue;
+ $params = 'hub.mode=publish&hub.url=' . urlencode($a->get_baseurl() . '/dfrn_poll/' . $owner['nickname'] );
+ post_url($h,$params);
+ logger('pubsub: publish: ' . $h . ' ' . $params . ' returned ' . $a->get_curl_code());
+ if(count($hubs) > 1)
+ sleep(7); // try and avoid multiple hubs responding at precisely the same time