the rest of pubsubhubbub except for the UI that actually turns it on
This commit is contained in:
parent
632c557008
commit
0d2650b29b
|
@ -577,7 +577,7 @@ function dfrn_deliver($contact,$atom,$debugging = false) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function consume_feed($xml,$importer,$contact) {
|
function consume_feed($xml,$importer,$contact, &$hub) {
|
||||||
|
|
||||||
require_once('simplepie/simplepie.inc');
|
require_once('simplepie/simplepie.inc');
|
||||||
|
|
||||||
|
@ -593,6 +593,12 @@ function consume_feed($xml,$importer,$contact) {
|
||||||
$photo_timestamp = '';
|
$photo_timestamp = '';
|
||||||
$photo_url = '';
|
$photo_url = '';
|
||||||
|
|
||||||
|
|
||||||
|
$foundhub = $feed->get_link(0,'hub');
|
||||||
|
|
||||||
|
if(strlen($foundhub))
|
||||||
|
$hub = $foundhub;
|
||||||
|
|
||||||
$rawtags = $feed->get_feed_tags( SIMPLEPIE_NAMESPACE_ATOM_10, 'author');
|
$rawtags = $feed->get_feed_tags( SIMPLEPIE_NAMESPACE_ATOM_10, 'author');
|
||||||
if($rawtags) {
|
if($rawtags) {
|
||||||
$elems = $rawtags[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10];
|
$elems = $rawtags[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10];
|
||||||
|
@ -809,3 +815,36 @@ function consume_feed($xml,$importer,$contact) {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function subscribe_to_hub($url,$importer,$contact) {
|
||||||
|
|
||||||
|
if(is_array($importer)) {
|
||||||
|
$r = q("SELECT `nickname` FROM `user` WHERE `uid` = %d LIMIT 1",
|
||||||
|
intval($importer['uid'])
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if(! count($r))
|
||||||
|
return;
|
||||||
|
|
||||||
|
$params = array();
|
||||||
|
|
||||||
|
$push_url = get_config('system','url') . '/pubsub/' . $r[0]['nickname'] . '/' . $contact['id'];
|
||||||
|
|
||||||
|
$verify_token = random_string();
|
||||||
|
|
||||||
|
$params['hub.mode'] = 'subscribe';
|
||||||
|
$params['hub.callback'] = urlencode($push_url);
|
||||||
|
$params['hub.topic'] = urlencode($contact['poll']);
|
||||||
|
$params['hub.verify'] = 'async';
|
||||||
|
$params['hub.verify_token'] = $verify_token;
|
||||||
|
|
||||||
|
$r = q("UPDATE `contact` SET `hub-verify` = '%s' WHERE `id` = %d LIMIT 1",
|
||||||
|
dbesc($verify_token),
|
||||||
|
intval($contact['id'])
|
||||||
|
);
|
||||||
|
|
||||||
|
post_url($url,$params);
|
||||||
|
return;
|
||||||
|
|
||||||
|
}
|
|
@ -303,7 +303,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
if((strlen($hub)) && ($cmd !== 'mail') && (followup == false)) {
|
if((strlen($hub)) && ($cmd !== 'mail') && (followup == false)) {
|
||||||
$params = array('hub.mode' => 'publish', 'hub.url' => $a->get_baseurl() . '/dfrn_poll/' . $owner['nickname'] );
|
$params = array('hub.mode' => 'publish', 'hub.url' => urlencode($a->get_baseurl() . '/dfrn_poll/' . $owner['nickname'] ));
|
||||||
post_url($hub,$params);
|
post_url($hub,$params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -161,7 +161,13 @@
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
|
||||||
consume_feed($xml,$importer,$contact);
|
consume_feed($xml,$importer,$contact,$hub);
|
||||||
|
|
||||||
|
|
||||||
|
if($contact['usehub'] && strlen($hub)) {
|
||||||
|
subscribe_to_hub($hub,$importer,$contact);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
$r = q("UPDATE `contact` SET `last-update` = '%s' WHERE `id` = %d LIMIT 1",
|
$r = q("UPDATE `contact` SET `last-update` = '%s' WHERE `id` = %d LIMIT 1",
|
||||||
dbesc(datetime_convert()),
|
dbesc(datetime_convert()),
|
||||||
|
|
|
@ -102,7 +102,8 @@ function pubsub_post(&$a) {
|
||||||
|
|
||||||
$contact = $r[0];
|
$contact = $r[0];
|
||||||
|
|
||||||
consume_feed($xml,$importer,$contact);
|
$feedhub = '';
|
||||||
|
consume_feed($xml,$importer,$contact,$feedhub);
|
||||||
|
|
||||||
hub_post_return();
|
hub_post_return();
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue