summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2010-11-25 14:21:20 +0300
committerAndrew Dolgov <[email protected]>2010-11-25 14:24:17 +0300
commit126cb7657f1f407d9cef828ad0c95614194ad9f7 (patch)
tree19d8d205842ab934b402f4f85bdaab680ccf53f8
parent74d12bab83ba5d806d130371fe8d9b76cc6e8c43 (diff)
digest: use pure JSON
-rw-r--r--digest.js26
-rw-r--r--modules/backend-rpc.php23
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) {
"</a>" + "</li>";
}
+ 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 "<rpc-reply>";
- print "<seq>$seq</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 "<headlines-title><![CDATA[" . getFeedTitle($link, $feed_id) .
- "]]></headlines-title>";
-
- print "<headlines><![CDATA[" . json_encode($headlines) . "]]></headlines>";
+ $reply['headlines'] = array();
+ $reply['headlines']['title'] = getFeedTitle($link, $feed_id);
+ $reply['headlines']['content'] = $headlines;
- print "</rpc-reply>";
+ print json_encode($reply);
return;
}
if ($subop == "digest-init") {
- print "<rpc-reply>";
-
+ 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 "<feeds><![CDATA[" . json_encode($feeds) . "]]></feeds>";
+ print json_encode(array("feeds" => $feeds));
- print "</rpc-reply>";
return;
}