digest: use pure JSON

This commit is contained in:
Andrew Dolgov 2010-11-25 14:21:20 +03:00
parent 74d12bab83
commit 126cb7657f
2 changed files with 25 additions and 24 deletions

View File

@ -485,6 +485,10 @@ function redraw_feedlist(feeds) {
"</a>" + "</li>"; "</a>" + "</li>";
} }
if (feeds.length == 0) {
$('feeds-content').innerHTML = __("No unread feeds.");
}
} catch (e) { } catch (e) {
exception_error("redraw_feedlist", e); exception_error("redraw_feedlist", e);
} }
@ -492,13 +496,13 @@ function redraw_feedlist(feeds) {
function parse_feeds(transport) { function parse_feeds(transport) {
try { try {
var reply = JSON.parse(transport.responseText);
if (!transport.responseXML) return; if (!reply) return;
var feeds = transport.responseXML.getElementsByTagName('feeds')[0]; var feeds = reply['feeds'];
if (feeds) { if (feeds) {
feeds = JSON.parse(feeds.firstChild.nodeValue);
feeds.sort( function (a,b) feeds.sort( function (a,b)
{ {
@ -529,12 +533,12 @@ function parse_feeds(transport) {
function parse_headlines(transport, replace, no_effects) { function parse_headlines(transport, replace, no_effects) {
try { try {
if (!transport.responseXML) return; var reply = JSON.parse(transport.responseText);
if (!reply) return;
var seq = transport.responseXML.getElementsByTagName('seq')[0]; var seq = reply['seq'];
if (seq) { if (seq) {
seq = seq.firstChild.nodeValue;
if (seq != _update_seq) { if (seq != _update_seq) {
console.log("parse_headlines: wrong sequence received."); console.log("parse_headlines: wrong sequence received.");
return; return;
@ -543,15 +547,11 @@ function parse_headlines(transport, replace, no_effects) {
return; return;
} }
var headlines = transport.responseXML.getElementsByTagName('headlines')[0]; var headlines = reply['headlines']['content'];
var headlines_title = transport.responseXML.getElementsByTagName('headlines-title')[0]; var headlines_title = reply['headlines']['title'];
if (headlines && headlines_title) { if (headlines && headlines_title) {
headlines = JSON.parse(headlines.firstChild.nodeValue); $("headlines-title").innerHTML = headlines_title
var title = headlines_title.firstChild.nodeValue;
$("headlines-title").innerHTML = title;
if (replace) { if (replace) {
$('headlines-content').innerHTML = ''; $('headlines-content').innerHTML = '';

View File

@ -695,15 +695,18 @@
} }
if ($subop == "digest-update") { if ($subop == "digest-update") {
header("Content-Type: text/plain");
$feed_id = db_escape_string($_REQUEST['feed_id']); $feed_id = db_escape_string($_REQUEST['feed_id']);
$offset = db_escape_string($_REQUEST['offset']); $offset = db_escape_string($_REQUEST['offset']);
$seq = db_escape_string($_REQUEST['seq']); $seq = db_escape_string($_REQUEST['seq']);
if (!$feed_id) $feed_id = -4; if (!$feed_id) $feed_id = -4;
if (!$offset) $offset = 0; if (!$offset) $offset = 0;
print "<rpc-reply>";
print "<seq>$seq</seq>"; $reply = array();
$reply['seq'] = $seq;
$headlines = api_get_headlines($link, $feed_id, 10, $offset, $headlines = api_get_headlines($link, $feed_id, 10, $offset,
'', ($feed_id == -4), true, false, "unread", "updated DESC"); '', ($feed_id == -4), true, false, "unread", "updated DESC");
@ -711,17 +714,16 @@
//function api_get_headlines($link, $feed_id, $limit, $offset, //function api_get_headlines($link, $feed_id, $limit, $offset,
// $filter, $is_cat, $show_excerpt, $show_content, $view_mode) { // $filter, $is_cat, $show_excerpt, $show_content, $view_mode) {
print "<headlines-title><![CDATA[" . getFeedTitle($link, $feed_id) . $reply['headlines'] = array();
"]]></headlines-title>"; $reply['headlines']['title'] = getFeedTitle($link, $feed_id);
$reply['headlines']['content'] = $headlines;
print "<headlines><![CDATA[" . json_encode($headlines) . "]]></headlines>"; print json_encode($reply);
print "</rpc-reply>";
return; return;
} }
if ($subop == "digest-init") { if ($subop == "digest-init") {
print "<rpc-reply>"; header("Content-Type: text/plain");
$tmp_feeds = api_get_feeds($link, -3, true, false, 0); $tmp_feeds = api_get_feeds($link, -3, true, false, 0);
@ -731,9 +733,8 @@
if ($f['id'] > 0 || $f['id'] == -4) array_push($feeds, $f); if ($f['id'] > 0 || $f['id'] == -4) array_push($feeds, $f);
} }
print "<feeds><![CDATA[" . json_encode($feeds) . "]]></feeds>"; print json_encode(array("feeds" => $feeds));
print "</rpc-reply>";
return; return;
} }