From 126cb7657f1f407d9cef828ad0c95614194ad9f7 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Thu, 25 Nov 2010 14:21:20 +0300 Subject: [PATCH] digest: use pure JSON --- digest.js | 26 +++++++++++++------------- modules/backend-rpc.php | 23 ++++++++++++----------- 2 files changed, 25 insertions(+), 24 deletions(-) diff --git a/digest.js b/digest.js index 520c3d619..0e50ff4c0 100644 --- a/digest.js +++ b/digest.js @@ -485,6 +485,10 @@ function redraw_feedlist(feeds) { "" + ""; } + if (feeds.length == 0) { + $('feeds-content').innerHTML = __("No unread feeds."); + } + } catch (e) { exception_error("redraw_feedlist", e); } @@ -492,13 +496,13 @@ function redraw_feedlist(feeds) { function parse_feeds(transport) { 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) { - feeds = JSON.parse(feeds.firstChild.nodeValue); feeds.sort( function (a,b) { @@ -529,12 +533,12 @@ function parse_feeds(transport) { function parse_headlines(transport, replace, no_effects) { 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) { - seq = seq.firstChild.nodeValue; if (seq != _update_seq) { console.log("parse_headlines: wrong sequence received."); return; @@ -543,15 +547,11 @@ function parse_headlines(transport, replace, no_effects) { return; } - var headlines = transport.responseXML.getElementsByTagName('headlines')[0]; - var headlines_title = transport.responseXML.getElementsByTagName('headlines-title')[0]; + var headlines = reply['headlines']['content']; + var headlines_title = reply['headlines']['title']; if (headlines && headlines_title) { - headlines = JSON.parse(headlines.firstChild.nodeValue); - - var title = headlines_title.firstChild.nodeValue; - - $("headlines-title").innerHTML = title; + $("headlines-title").innerHTML = headlines_title if (replace) { $('headlines-content').innerHTML = ''; diff --git a/modules/backend-rpc.php b/modules/backend-rpc.php index 510a9fd36..59faee7b3 100644 --- a/modules/backend-rpc.php +++ b/modules/backend-rpc.php @@ -695,15 +695,18 @@ } if ($subop == "digest-update") { + header("Content-Type: text/plain"); + $feed_id = db_escape_string($_REQUEST['feed_id']); $offset = db_escape_string($_REQUEST['offset']); $seq = db_escape_string($_REQUEST['seq']); if (!$feed_id) $feed_id = -4; if (!$offset) $offset = 0; - print ""; - print "$seq"; + $reply = array(); + + $reply['seq'] = $seq; $headlines = api_get_headlines($link, $feed_id, 10, $offset, '', ($feed_id == -4), true, false, "unread", "updated DESC"); @@ -711,18 +714,17 @@ //function api_get_headlines($link, $feed_id, $limit, $offset, // $filter, $is_cat, $show_excerpt, $show_content, $view_mode) { - print ""; + $reply['headlines'] = array(); + $reply['headlines']['title'] = getFeedTitle($link, $feed_id); + $reply['headlines']['content'] = $headlines; - print ""; - - print ""; + print json_encode($reply); return; } if ($subop == "digest-init") { - print ""; - + header("Content-Type: text/plain"); + $tmp_feeds = api_get_feeds($link, -3, true, false, 0); $feeds = array(); @@ -731,9 +733,8 @@ if ($f['id'] > 0 || $f['id'] == -4) array_push($feeds, $f); } - print ""; + print json_encode(array("feeds" => $feeds)); - print ""; return; }