aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriendika <info@friendika.com>2011-02-07 17:06:04 -0800
committerFriendika <info@friendika.com>2011-02-07 17:06:04 -0800
commit18c5d1ff90dd364328032b3f0092ac5176ebc4c5 (patch)
treeb514163221c58438f1acbc930f75926fcbb68ff2
parent7dd56fa14c784a95695aece6dfe5cac145452ffe (diff)
downloadvolse-hubzilla-18c5d1ff90dd364328032b3f0092ac5176ebc4c5.tar.gz
volse-hubzilla-18c5d1ff90dd364328032b3f0092ac5176ebc4c5.tar.bz2
volse-hubzilla-18c5d1ff90dd364328032b3f0092ac5176ebc4c5.zip
feed cleanup
-rw-r--r--boot.php43
-rw-r--r--include/items.php68
-rw-r--r--include/notifier.php18
-rw-r--r--mod/dfrn_poll.php2
4 files changed, 68 insertions, 63 deletions
diff --git a/boot.php b/boot.php
index 509fe2287..c8722caa7 100644
--- a/boot.php
+++ b/boot.php
@@ -2365,4 +2365,45 @@ function feed_birthday($uid,$tz) {
}
return $birthday;
-}} \ No newline at end of file
+}}
+
+/**
+ * return atom link elements for all of our hubs
+ */
+
+if(! function_exists('feed_hublinks')) {
+function feed_hublinks() {
+
+ $hub = get_config('system','huburl');
+
+ $hubxml = '';
+ if(strlen($hub)) {
+ $hubs = explode(',', $hub);
+ if(count($hubs)) {
+ foreach($hubs as $h) {
+ $h = trim($h);
+ if(! strlen($h))
+ continue;
+ $hubxml .= '<link rel="hub" href="' . xmlify($h) . '" />' . "\n" ;
+ }
+ }
+ }
+ return $hubxml;
+}}
+
+/* return atom link elements for salmon endpoints */
+
+if(! function_exists('feed_salmonlinks')) {
+function feed_salmonlinks($nick) {
+
+ $a = get_app();
+
+ $salmon = '<link rel="salmon" href="' . xmlify($a->get_baseurl() . '/salmon/' . $nick) . '" />' . "\n" ;
+
+ // old style links that status.net still needed as of 12/2010
+
+ $salmon .= ' <link rel="http://salmon-protocol.org/ns/salmon-replies" href="' . xmlify($a->get_baseurl() . '/salmon/' . $nick) . '" />' . "\n" ;
+ $salmon .= ' <link rel="http://salmon-protocol.org/ns/salmon-mention" href="' . xmlify($a->get_baseurl() . '/salmon/' . $nick) . '" />' . "\n" ;
+ return $salmon;
+}}
+
diff --git a/include/items.php b/include/items.php
index 5b99ca171..9c29e6558 100644
--- a/include/items.php
+++ b/include/items.php
@@ -9,37 +9,27 @@ function get_feed_for(&$a, $dfrn_id, $owner_nick, $last_update, $direction = 0)
// default permissions - anonymous user
- $sql_extra = "
- AND `allow_cid` = ''
- AND `allow_gid` = ''
- AND `deny_cid` = ''
- AND `deny_gid` = ''
- ";
-
- if(strlen($owner_nick) && ! intval($owner_nick)) {
- $r = q("SELECT `uid`, `nickname`, `timezone` FROM `user` WHERE `nickname` = '%s' LIMIT 1",
- dbesc($owner_nick)
- );
- if(count($r)) {
- $owner_id = $r[0]['uid'];
- $owner_nick = $r[0]['nickname'];
- $owner_tz = $r[0]['timezone'];
- }
- }
+ if(! strlen($owner_nick))
+ killme();
- $r = q("SELECT * FROM `contact` WHERE `self` = 1 AND `uid` = %d LIMIT 1",
- intval($owner_id)
+ $sql_extra = " AND `allow_cid` = '' AND `allow_gid` = '' AND `deny_cid` = '' AND `deny_gid` = '' ";
+
+ $r = q("SELECT `contact`.*, `user`.`uid` AS `user_uid`, `user`.`nickname`, `user`.`timezone`
+ FROM `contact` LEFT JOIN `user` ON `user`.`uid` = `contact`.`uid`
+ WHERE `contact`.`self` = 1 AND `user`.`nickname` = '%s' LIMIT 1",
+ dbesc($owner_nick)
);
- if(count($r)) {
- $owner = $r[0];
- $owner['nickname'] = $owner_nick;
- }
- else
+
+ if(! count($r))
killme();
- $birthday = feed_birthday($owner_id,$owner_tz);
+ $owner = $r[0];
+ $owner_id = $owner['user_uid'];
+ $owner_nick = $owner['nickname'];
+
+ $birthday = feed_birthday($owner_id,$owner['timezone']);
- if($dfrn_id && $dfrn_id != '*') {
+ if(strlen($dfrn_id)) {
$sql_extra = '';
switch($direction) {
@@ -65,7 +55,7 @@ function get_feed_for(&$a, $dfrn_id, $owner_nick, $last_update, $direction = 0)
);
if(! count($r))
- return false;
+ killme();
$contact = $r[0];
$groups = init_groups_visitor($contact['id']);
@@ -119,7 +109,7 @@ function get_feed_for(&$a, $dfrn_id, $owner_nick, $last_update, $direction = 0)
);
// Will check further below if this actually returned results.
- // We will provide an empty feed in any case.
+ // We will provide an empty feed if that is the case.
$items = $r;
@@ -127,25 +117,9 @@ function get_feed_for(&$a, $dfrn_id, $owner_nick, $last_update, $direction = 0)
$atom = '';
- $hub = get_config('system','huburl');
-
- $hubxml = '';
- if(strlen($hub)) {
- $hubs = explode(',', $hub);
- if(count($hubs)) {
- foreach($hubs as $h) {
- $h = trim($h);
- if(! strlen($h))
- continue;
- $hubxml .= '<link rel="hub" href="' . xmlify($h) . '" />' . "\n" ;
- }
- }
- }
-
- $salmon = '<link rel="salmon" href="' . xmlify($a->get_baseurl() . '/salmon/' . $owner_nick) . '" />' . "\n" ;
- $salmon .= '<link rel="http://salmon-protocol.org/ns/salmon-replies" href="' . xmlify($a->get_baseurl() . '/salmon/' . $owner_nick) . '" />' . "\n" ;
- $salmon .= '<link rel="http://salmon-protocol.org/ns/salmon-mention" href="' . xmlify($a->get_baseurl() . '/salmon/' . $owner_nick) . '" />' . "\n" ;
+ $hubxml = feed_hublinks();
+ $salmon = feed_salmonlinks($owner_nick);
$atom .= replace_macros($feed_template, array(
'$version' => xmlify(FRIENDIKA_VERSION),
@@ -178,7 +152,7 @@ function get_feed_for(&$a, $dfrn_id, $owner_nick, $last_update, $direction = 0)
// public feeds get html, our own nodes use bbcode
- if($dfrn_id === '*') {
+ if($dfrn_id === '') {
$type = 'html';
}
else {
diff --git a/include/notifier.php b/include/notifier.php
index ca0aa0df3..b6c4ca571 100644
--- a/include/notifier.php
+++ b/include/notifier.php
@@ -179,23 +179,13 @@ function notifier_run($argv, $argc){
$mail_template = load_view_file('view/atom_mail.tpl');
$atom = '';
- $hubxml = '';
$slaps = array();
- if(strlen($hub)) {
- $hubs = explode(',', $hub);
- if(count($hubs)) {
- foreach($hubs as $h) {
- $h = trim($h);
- if(! strlen($h))
- continue;
- $hubxml .= '<link rel="hub" href="' . xmlify($h) . '" />' . "\n" ;
- }
- }
- }
+ $hubxml = feed_hublinks();
$birthday = feed_birthday($owner['uid'],$owner['timezone']);
- if($birthday)
+
+ if(strlen($birthday))
$birthday = '<dfrn:birthday>' . xmlify($birthday) . '</dfrn:birthday>';
$atom .= replace_macros($feed_template, array(
@@ -398,7 +388,7 @@ function notifier_run($argv, $argc){
*
*/
- $max_allowed = ((get_config('system','maxpubdeliver') === false) ? 150 : intval(get_config('system','maxdeliver')));
+ $max_allowed = ((get_config('system','maxpubdeliver') === false) ? 150 : intval(get_config('system','maxpubdeliver')));
/**
*
diff --git a/mod/dfrn_poll.php b/mod/dfrn_poll.php
index 85e7fc0af..334e10307 100644
--- a/mod/dfrn_poll.php
+++ b/mod/dfrn_poll.php
@@ -28,7 +28,7 @@ function dfrn_poll_init(&$a) {
if(($dfrn_id === '') && (! x($_POST,'dfrn_id')) && ($a->argc > 1)) {
logger('dfrn_poll: public feed request from ' . $_SERVER['REMOTE_ADDR'] );
header("Content-type: application/atom+xml");
- $o = get_feed_for($a, '*', $a->argv[1],$last_update);
+ $o = get_feed_for($a, '', $a->argv[1],$last_update);
echo $o;
killme();
}