- // Is it an item with uid=0?
- if ($nick == "") {
- $r = dba::fetch_first("SELECT `item`.`id`, `item`.`parent`, `item`.`author-name`, `item`.`author-link`,
- `item`.`author-avatar`, `item`.`network`, `item`.`uid`, `item`.`owner-link`, `item`.`body`
- FROM `item` WHERE `item`.`visible` AND NOT `item`.`deleted` AND NOT `item`.`moderated`
- AND `item`.`allow_cid` = '' AND `item`.`allow_gid` = ''
- AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = ''
- AND NOT `item`.`private` AND `item`.`uid` = 0
- AND `item`.`guid` = ? LIMIT 1", $a->argv[1]);
+ if (!DBM::is_result($r)) {
+ $a->error = 404;
+ notice(t('Item not found.') . EOL);
+ return;
+ }
+ } elseif (($a->argc == 3) && ($nick == '_feed_')) {
+ $r = dba::fetch_first("SELECT `id`, `parent`, `author-name`, `author-link`,
+ `author-avatar`, `network`, `body`, `uid`, `owner-link`
+ FROM `item` WHERE `visible` AND NOT `deleted` AND NOT `moderated`
+ AND `allow_cid` = '' AND `allow_gid` = ''
+ AND `deny_cid` = '' AND `deny_gid` = ''
+ AND NOT `private` AND `uid` = 0
+ AND `id` = ? LIMIT 1", $a->argv[2]);
+ }
+
+ if (DBM::is_result($r)) {
+ if (strstr($_SERVER['HTTP_ACCEPT'], 'application/atom+xml')) {
+ logger('Directly serving XML for id '.$r["id"], LOGGER_DEBUG);
+ displayShowFeed($r["id"], false);
+ }
+
+ if ($r["id"] != $r["parent"]) {
+ $r = dba::fetch_first("SELECT `id`, `author-name`, `author-link`, `author-avatar`, `network`, `body`, `uid`, `owner-link` FROM `item`
+ WHERE `item`.`visible` AND NOT `item`.`deleted` AND NOT `item`.`moderated`
+ AND `id` = ?", $r["parent"]);