Merge pull request #3715 from annando/ostatus-atom
OStatus: Directly serve atom+xml if requested
This commit is contained in:
commit
ca5b12063d
2 changed files with 18 additions and 9 deletions
|
@ -674,7 +674,7 @@ class ostatus {
|
||||||
|
|
||||||
self::$conv_list[$conversation] = true;
|
self::$conv_list[$conversation] = true;
|
||||||
|
|
||||||
$conversation_data = z_fetch_url($conversation);
|
$conversation_data = z_fetch_url($conversation, false, $redirects, array('accept_content' => 'application/atom+xml'));
|
||||||
|
|
||||||
if (!$conversation_data['success']) {
|
if (!$conversation_data['success']) {
|
||||||
return;
|
return;
|
||||||
|
@ -855,7 +855,7 @@ class ostatus {
|
||||||
}
|
}
|
||||||
|
|
||||||
$stored = false;
|
$stored = false;
|
||||||
$related_data = z_fetch_url($related);
|
$related_data = z_fetch_url($related, false, $redirects, array('accept_content' => 'application/atom+xml'));
|
||||||
|
|
||||||
if (!$related_data['success']) {
|
if (!$related_data['success']) {
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -17,13 +17,7 @@ function display_init(App $a) {
|
||||||
if ($a->argc == 3) {
|
if ($a->argc == 3) {
|
||||||
if (substr($a->argv[2], -5) == '.atom') {
|
if (substr($a->argv[2], -5) == '.atom') {
|
||||||
$item_id = substr($a->argv[2], 0, -5);
|
$item_id = substr($a->argv[2], 0, -5);
|
||||||
$xml = dfrn::itemFeed($item_id);
|
displayShowFeed($item_id);
|
||||||
if ($xml == '') {
|
|
||||||
http_status_exit(500);
|
|
||||||
}
|
|
||||||
header("Content-type: application/atom+xml");
|
|
||||||
echo $xml;
|
|
||||||
killme();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -70,6 +64,12 @@ function display_init(App $a) {
|
||||||
AND `item`.`guid` = ? LIMIT 1", $a->argv[1]);
|
AND `item`.`guid` = ? LIMIT 1", $a->argv[1]);
|
||||||
}
|
}
|
||||||
if (dbm::is_result($r)) {
|
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"]);
|
||||||
|
}
|
||||||
|
|
||||||
if ($r["id"] != $r["parent"]) {
|
if ($r["id"] != $r["parent"]) {
|
||||||
$r = dba::fetch_first("SELECT `id`, `author-name`, `author-link`, `author-avatar`, `network`, `body`, `uid`, `owner-link` FROM `item`
|
$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`
|
WHERE `item`.`visible` AND NOT `item`.`deleted` AND NOT `item`.`moderated`
|
||||||
|
@ -499,3 +499,12 @@ function display_content(App $a, $update = 0) {
|
||||||
return $o;
|
return $o;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function displayShowFeed($item_id) {
|
||||||
|
$xml = dfrn::itemFeed($item_id);
|
||||||
|
if ($xml == '') {
|
||||||
|
http_status_exit(500);
|
||||||
|
}
|
||||||
|
header("Content-type: application/atom+xml");
|
||||||
|
echo $xml;
|
||||||
|
killme();
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue