rpc: mark silent methods, rework verifyRegexp to use JSON

This commit is contained in:
Andrew Dolgov 2010-11-29 16:44:50 +03:00
parent a6fdab2e14
commit 91d16ff193
3 changed files with 30 additions and 43 deletions

View File

@ -962,15 +962,12 @@ function quickAddFilter() {
new Ajax.Request("backend.php", {
parameters: query,
onComplete: function(transport) {
handle_rpc_reply(transport);
var response = transport.responseXML;
if (response) {
var s = response.getElementsByTagName("status")[0].firstChild.nodeValue;
var reply = JSON.parse(transport.responseText);
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);

View File

@ -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 "<rpc-reply>";
header("Content-Type: text/plain");
update_feed_access_key($link, 'OPML:Publish',
false, $_SESSION["uid"]);
$new_link = opml_publish_url($link);
print "<link><![CDATA[$new_link]]></link>";
print "</rpc-reply>";
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 "<rpc-reply>";
$new_key = update_feed_access_key($link, $feed_id, $is_cat);
print "<link><![CDATA[$new_key]]></link>";
print "</rpc-reply>";
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") {
header("Content-Type: text/plain");
$reg_exp = $_REQUEST["reg_exp"];
print "<rpc-reply><status>";
if (@preg_match("/$reg_exp/i", "TEST") === false) {
print "INVALID";
} else {
print "OK";
}
print "</status></rpc-reply>";
$status = @preg_match("/$reg_exp/i", "TEST") !== false;
print json_encode(array("status" => $status));
return;
}

View File

@ -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;
if (response) {
var s = response.getElementsByTagName("status")[0].firstChild.nodeValue;
var reply = JSON.parse(transport.responseText);
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);