From 91d16ff193f36a47aee09767faa3487e30915468 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Mon, 29 Nov 2010 16:44:50 +0300 Subject: [PATCH] rpc: mark silent methods, rework verifyRegexp to use JSON --- functions.js | 14 +++++--------- modules/backend-rpc.php | 42 +++++++++++++++++------------------------ prefs.js | 17 ++++++++--------- 3 files changed, 30 insertions(+), 43 deletions(-) diff --git a/functions.js b/functions.js index 615d59fc..91318b02 100644 --- a/functions.js +++ b/functions.js @@ -962,15 +962,12 @@ function quickAddFilter() { new Ajax.Request("backend.php", { parameters: query, onComplete: function(transport) { - handle_rpc_reply(transport); - var response = transport.responseXML; + var reply = JSON.parse(transport.responseText); - if (response) { - var s = response.getElementsByTagName("status")[0].firstChild.nodeValue; - + if (reply) { notify(''); - if (s == "INVALID") { + if (!reply['status']) { alert("Match regular expression seems to be invalid."); return; } else { @@ -1162,14 +1159,13 @@ function genUrlChangeKey(feed, is_cat) { new Ajax.Request("backend.php", { parameters: query, onComplete: function(transport) { - var new_link = transport.responseXML.getElementsByTagName("link")[0]; + var reply = JSON.parse(transport.responseText); + var new_link = reply.link; var e = $('gen_feed_url'); if (new_link) { - new_link = new_link.firstChild.nodeValue; - e.innerHTML = e.innerHTML.replace(/\&key=.*$/, "&key=" + new_link); diff --git a/modules/backend-rpc.php b/modules/backend-rpc.php index 5721eb3c..b8877da2 100644 --- a/modules/backend-rpc.php +++ b/modules/backend-rpc.php @@ -4,6 +4,7 @@ $subop = $_REQUEST["subop"]; $seq = (int) $_REQUEST["seq"]; + // Silent if ($subop == "setprofile") { $id = db_escape_string($_REQUEST["id"]); @@ -12,6 +13,7 @@ return; } + // Silent if ($subop == "remprofiles") { $ids = split(",", db_escape_string(trim($_REQUEST["ids"]))); @@ -24,6 +26,7 @@ return; } + // Silent if ($subop == "addprofile") { $title = db_escape_string(trim($_REQUEST["title"])); if ($title) { @@ -54,6 +57,7 @@ return; } + // Silent if ($subop == "saveprofile") { $id = db_escape_string($_REQUEST["id"]); $title = db_escape_string(trim($_REQUEST["value"])); @@ -85,6 +89,7 @@ return; } + // Silent if ($subop == "remarchive") { $ids = split(",", db_escape_string($_REQUEST["ids"])); @@ -96,7 +101,6 @@ $rc = db_affected_rows($link, $result); } - return; } @@ -160,8 +164,6 @@ $mark = "false"; } - // FIXME this needs collision testing - $result = db_query($link, "UPDATE ttrss_user_entries SET marked = $mark WHERE ref_id = '$id' AND owner_uid = " . $_SESSION["uid"]); @@ -417,17 +419,15 @@ return; } - // XML method if ($subop == "regenOPMLKey") { - - print ""; + header("Content-Type: text/plain"); update_feed_access_key($link, 'OPML:Publish', false, $_SESSION["uid"]); $new_link = opml_publish_url($link); - print ""; - print ""; + + print json_encode(array("link" => $new_link)); return; } @@ -563,6 +563,7 @@ return; } + // Silent if ($subop == "massSubscribe") { $ids = split(",", db_escape_string($_REQUEST["ids"])); @@ -774,22 +775,19 @@ return; } - // XML method if ($subop == "regenFeedKey") { + header("Content-Type: text/plain"); + $feed_id = db_escape_string($_REQUEST['id']); $is_cat = (bool) db_escape_string($_REQUEST['is_cat']); - print ""; - $new_key = update_feed_access_key($link, $feed_id, $is_cat); - print ""; - - print ""; - + print json_encode(array("link" => $new_key)); return; } + // Silent if ($subop == "clearKeys") { db_query($link, "DELETE FROM ttrss_access_keys WHERE owner_uid = " . $_SESSION["uid"]); @@ -797,20 +795,14 @@ return; } - // XML method if ($subop == "verifyRegexp") { - $reg_exp = $_REQUEST["reg_exp"]; - - print ""; + header("Content-Type: text/plain"); - if (@preg_match("/$reg_exp/i", "TEST") === false) { - print "INVALID"; - } else { - print "OK"; - } + $reg_exp = $_REQUEST["reg_exp"]; - print ""; + $status = @preg_match("/$reg_exp/i", "TEST") !== false; + print json_encode(array("status" => $status)); return; } diff --git a/prefs.js b/prefs.js index ea2bf09d..c88ae2c0 100644 --- a/prefs.js +++ b/prefs.js @@ -206,15 +206,12 @@ function editFilter(id) { new Ajax.Request("backend.php", { parameters: query, onComplete: function(transport) { - handle_rpc_reply(transport); - var response = transport.responseXML; + var reply = JSON.parse(transport.responseText); - if (response) { - var s = response.getElementsByTagName("status")[0].firstChild.nodeValue; - + if (reply) { notify(''); - if (s == "INVALID") { + if (!reply['status']) { alert("Match regular expression seems to be invalid."); return; } else { @@ -1248,13 +1245,15 @@ function opmlRegenKey() { new Ajax.Request("backend.php", { parameters: query, onComplete: function(transport) { - var new_link = transport.responseXML.getElementsByTagName("link")[0]; + var reply = JSON.parse(transport.responseText); + + var new_link = reply.link; var e = $('pub_opml_url'); if (new_link) { - e.href = new_link.firstChild.nodeValue; - e.innerHTML = new_link.firstChild.nodeValue; + e.href = new_link; + e.innerHTML = new_link; new Effect.Highlight(e); -- 2.39.2