From f5615068ca338153ab7dacf5c9ce46c6ed7b1ab4 Mon Sep 17 00:00:00 2001 From: Mike Macgirvin Date: Fri, 1 Oct 2010 02:28:06 -0700 Subject: [PATCH] trialing pubsubhubbub - operational tweaks --- include/items.php | 6 ++++-- include/notifier.php | 2 +- mod/contacts.php | 22 +++++++++++++++++++++- mod/pubsub.php | 20 +++++++++++++++----- view/contact_edit.tpl | 1 + 5 files changed, 42 insertions(+), 9 deletions(-) diff --git a/include/items.php b/include/items.php index 2c4b770147..221a8a65c2 100644 --- a/include/items.php +++ b/include/items.php @@ -153,10 +153,12 @@ function get_feed_for(&$a, $dfrn_id, $owner_id, $last_update, $direction = 0) { // public feeds get html, our own nodes use bbcode if($dfrn_id === '*') { + $allow = (($item['last-child']) ? 1 : 0); $item['body'] = bbcode($item['body']); $type = 'html'; } else { + $allow = ((($item['last-child']) && ($contact['rel']) && ($contact['rel'] != REL_FAN)) ? 1 : 0); $type = 'text'; } @@ -188,7 +190,7 @@ function get_feed_for(&$a, $dfrn_id, $owner_id, $last_update, $direction = 0) { '$content' => xmlify($item['body']), '$verb' => xmlify($verb), '$actobj' => $actobj, // do not xmlify - '$comment_allow' => ((($item['last-child']) && ($contact['rel']) && ($contact['rel'] != REL_FAN)) ? 1 : 0) + '$comment_allow' => $allow )); } else { @@ -206,7 +208,7 @@ function get_feed_for(&$a, $dfrn_id, $owner_id, $last_update, $direction = 0) { '$verb' => xmlify($verb), '$actobj' => $actobj, // do not xmlify '$parent_id' => xmlify($item['parent-uri']), - '$comment_allow' => (($item['last-child']) ? 1 : 0) + '$comment_allow' => $allow )); } } diff --git a/include/notifier.php b/include/notifier.php index ee2b22ca39..0166d0b372 100644 --- a/include/notifier.php +++ b/include/notifier.php @@ -302,7 +302,7 @@ } } - if((strlen($hub)) && ($cmd !== 'mail') && (followup == false)) { + if((strlen($hub)) && ($cmd !== 'mail') && ($followup == false)) { $params = 'hub.mode=publish&hub.url=' . urlencode($a->get_baseurl() . '/dfrn_poll/' . $owner['nickname'] ); post_url($hub,$params); } diff --git a/mod/contacts.php b/mod/contacts.php index 438b37aaf3..8c24469791 100644 --- a/mod/contacts.php +++ b/mod/contacts.php @@ -41,7 +41,15 @@ function contacts_post(&$a) { return; } } + + $usehub = ((intval($_POST['usehub'])) ? 1 : 0); + if($orig_record[0]['usehub'] && (! $usehub)) { + // remove hub subscription + } + $priority = intval($_POST['priority']); + if($priority == (-1)) + if($priority > 5 || $priority < 0) $priority = 0; @@ -51,9 +59,10 @@ function contacts_post(&$a) { $reason = notags(trim($_POST['reason'])); - $r = q("UPDATE `contact` SET `profile-id` = %d, `priority` = %d , `rating` = %d, `reason` = '%s' + $r = q("UPDATE `contact` SET `profile-id` = %d, `usehub` = %d, `priority` = %d , `rating` = %d, `reason` = '%s' WHERE `id` = %d AND `uid` = %d LIMIT 1", intval($profile_id), + intval($usehub), intval($priority), intval($rating), dbesc($reason), @@ -176,8 +185,19 @@ function contacts_content(&$a) { $url = $r[0]['url']; $sparkle = ''; } + + $huburl = get_config('system','huburl'); + if($huburl) { + // finish selector + $hubenable = ''; + } + else + $hubenable = ''; + + $o .= replace_macros($tpl,array( '$poll_interval' => contact_poll_interval($r[0]['priority']), + '$hubenable' => $hubenable, '$last_update' => (($r[0]['last-update'] == '0000-00-00 00:00:00') ? t('Never') : datetime_convert('UTC',date_default_timezone_get(),$r[0]['last-update'],'D, j M Y, g:i A')), diff --git a/mod/pubsub.php b/mod/pubsub.php index fa092049f4..1feb800310 100644 --- a/mod/pubsub.php +++ b/mod/pubsub.php @@ -33,11 +33,13 @@ function pubsub_init(&$a) { if($_SERVER['REQUEST_METHOD'] === 'GET') { - $hub_mode = notags(trim($_GET['hub.mode'])); - $hub_topic = notags(trim($_GET['hub.topic'])); - $hub_challenge = notags(trim($_GET['hub.challenge'])); - $hub_lease = notags(trim($_GET['hub.lease_seconds'])); - $hub_verify = notags(trim($_GET['hub.verify_token'])); + $hub_mode = notags(trim($_GET['hub_mode'])); + $hub_topic = notags(trim($_GET['hub_topic'])); + $hub_challenge = notags(trim($_GET['hub_challenge'])); + $hub_lease = notags(trim($_GET['hub_lease_seconds'])); + $hub_verify = notags(trim($_GET['hub_verify_token'])); + + $subscribe = (($hub_mode === 'subscribe') ? 1 : 0); @@ -47,6 +49,7 @@ function pubsub_init(&$a) { if(! count($r)) hub_return(false, ''); + $owner = $r[0]; $sql_extra = ((strlen($hub_verify)) ? sprintf(" AND `hub-verify` = '%s' ", dbesc($hub_verify)) : ''); @@ -82,6 +85,10 @@ function pubsub_post(&$a) { $xml = file_get_contents('php://input'); + $debugging = get_config('system','debugging'); + if($debugging) + file_put_contents('pubsub.out',$xml); + $nick = (($a->argc > 1) ? notags(trim($a->argv[1])) : ''); $contact_id = (($a->argc > 2) ? intval($a->argv[2]) : 0); @@ -103,6 +110,9 @@ function pubsub_post(&$a) { $contact = $r[0]; $feedhub = ''; + + require_once('include/items.php'); + consume_feed($xml,$importer,$contact,$feedhub); hub_post_return(); diff --git a/view/contact_edit.tpl b/view/contact_edit.tpl index acea1da4e9..0771849de6 100644 --- a/view/contact_edit.tpl +++ b/view/contact_edit.tpl @@ -27,6 +27,7 @@
Last updated: $last_update
Update public posts:
$poll_interval + $hubenable