summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2006-10-01 11:05:52 +0100
committerAndrew Dolgov <[email protected]>2006-10-01 11:05:52 +0100
commitc4d6b6b7ff73c0d3a1cc7636f646edcd65912336 (patch)
tree02fc0eca01cf90c34e0b0fcd8840cf243447f599 /modules
parentef8be8ea8da90596d321bc25e88c48121715ed18 (diff)
move backend-rpc.php to modules
Diffstat (limited to 'modules')
-rw-r--r--modules/backend-rpc.php206
1 files changed, 206 insertions, 0 deletions
diff --git a/modules/backend-rpc.php b/modules/backend-rpc.php
new file mode 100644
index 000000000..92fe23468
--- /dev/null
+++ b/modules/backend-rpc.php
@@ -0,0 +1,206 @@
+<?php
+ function handle_rpc_request($link) {
+
+ $subop = $_GET["subop"];
+
+ if ($subop == "setpref") {
+ if (WEB_DEMO_MODE) {
+ return;
+ }
+
+ print "<rpc-reply>";
+
+ $key = db_escape_string($_GET["key"]);
+ $value = db_escape_string($_GET["value"]);
+
+ set_pref($link, $key, $value);
+
+ print "<param-set key=\"$key\" value=\"$value\"/>";
+
+ print "</rpc-reply>";
+
+ }
+
+ if ($subop == "getLabelCounters") {
+ $aid = $_GET["aid"];
+ print "<rpc-reply>";
+ print "<counters>";
+ getLabelCounters($link);
+ if ($aid) {
+ getFeedCounter($link, $aid);
+ }
+ print "</counters>";
+ print "</rpc-reply>";
+ }
+
+ if ($subop == "getFeedCounters") {
+ print "<rpc-reply>";
+ print "<counters>";
+ getFeedCounters($link);
+ print "</counters>";
+ print "</rpc-reply>";
+ }
+
+ if ($subop == "getAllCounters") {
+ print "<rpc-reply>";
+ print "<counters>";
+ getAllCounters($link);
+ print "</counters>";
+ print_runtime_info($link);
+ print "</rpc-reply>";
+ }
+
+ if ($subop == "mark") {
+ $mark = $_GET["mark"];
+ $id = db_escape_string($_GET["id"]);
+
+ if ($mark == "1") {
+ $mark = "true";
+ } else {
+ $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"]);
+ }
+
+ if ($subop == "updateFeed") {
+ $feed_id = db_escape_string($_GET["feed"]);
+
+ $result = db_query($link,
+ "SELECT feed_url FROM ttrss_feeds WHERE id = '$feed_id'
+ AND owner_uid = " . $_SESSION["uid"]);
+
+ if (db_num_rows($result) > 0) {
+ $feed_url = db_fetch_result($result, 0, "feed_url");
+ update_rss_feed($link, $feed_url, $feed_id);
+ }
+
+ print "<rpc-reply>";
+ print "<counters>";
+ getFeedCounter($link, $feed_id);
+ print "</counters>";
+ print "</rpc-reply>";
+
+ return;
+ }
+
+ if ($subop == "forceUpdateAllFeeds" || $subop == "updateAllFeeds") {
+
+ if (ENABLE_UPDATE_DAEMON) {
+
+ if ($subop == "forceUpdateAllFeeds") {
+
+ $result = db_query($link, "SELECT count(id) AS cid FROM
+ ttrss_scheduled_updates WHERE feed_id IS NULL AND
+ owner_uid = " . $_SESSION["uid"]);
+
+ $cid = db_fetch_result($result, 0, "cid");
+
+ if ($cid == 0) {
+
+ db_query($link, "INSERT INTO ttrss_scheduled_updates
+ (owner_uid, feed_id, entered) VALUES
+ (".$_SESSION["uid"].", NULL, NOW())");
+
+ }
+ }
+
+ } else {
+ update_all_feeds($link, $subop == "forceUpdateAllFeeds");
+ }
+
+ $global_unread_caller = sprintf("%d", $_GET["uctr"]);
+ $global_unread = getGlobalUnread($link);
+
+ print "<rpc-reply>";
+
+ print "<counters>";
+
+ if ($global_unread_caller != $global_unread) {
+
+ $omode = $_GET["omode"];
+
+ if (!$omode) $omode = "tflc";
+
+ if (strchr($omode, "l")) getLabelCounters($link);
+ if (strchr($omode, "f")) getFeedCounters($link);
+ if (strchr($omode, "t")) getTagCounters($link);
+ if (strchr($omode, "c")) {
+ if (get_pref($link, 'ENABLE_FEED_CATS')) {
+ getCategoryCounters($link);
+ }
+ }
+ }
+
+ getGlobalCounters($link, $global_unread);
+
+ print "</counters>";
+
+ print_runtime_info($link);
+
+ print "</rpc-reply>";
+
+ }
+
+ /* GET["cmode"] = 0 - mark as read, 1 - as unread, 2 - toggle */
+ if ($subop == "catchupSelected") {
+
+ $ids = split(",", db_escape_string($_GET["ids"]));
+ $cmode = sprintf("%d", $_GET["cmode"]);
+
+ catchupArticlesById($link, $ids, $cmode);
+
+ print "<rpc-reply>";
+ print "<counters>";
+ getAllCounters($link);
+ print "</counters>";
+ print_runtime_info($link);
+ print "</rpc-reply>";
+ }
+
+ if ($subop == "markSelected") {
+
+ $ids = split(",", db_escape_string($_GET["ids"]));
+ $cmode = sprintf("%d", $_GET["cmode"]);
+
+ markArticlesById($link, $ids, $cmode);
+
+ print "<rpc-reply>";
+ print "<counters>";
+ getAllCounters($link);
+ print "</counters>";
+ print_runtime_info($link);
+ print "</rpc-reply>";
+ }
+
+ if ($subop == "sanityCheck") {
+ print "<rpc-reply>";
+ if (sanity_check($link)) {
+ print "<error error-code=\"0\"/>";
+ print_init_params($link);
+ print_runtime_info($link);
+ }
+ print "</rpc-reply>";
+ }
+
+ if ($subop == "globalPurge") {
+
+ print "<rpc-reply>";
+ global_purge_old_posts($link, true);
+ print "</rpc-reply>";
+
+ }
+
+ if ($subop == "storeParam") {
+ $key = $_GET["key"];
+ $value = $_GET["value"];
+ $_SESSION["stored-params"][$key] = $value;
+ print "<rpc-reply>
+ <message>$key : $value</message>
+ </rpc-reply>";
+ }
+ }
+?>