summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2006-09-19 05:14:27 +0100
committerAndrew Dolgov <[email protected]>2006-09-19 05:14:27 +0100
commit472782e8bff08df698a3c3f87ee3fc9f7e16b06f (patch)
treee6bb4a92194ab3046c7850237ac54cae8230606e
parent39ddbaa1c4067ebac770e7ed923dcee12dbfe3ce (diff)
optimize catchup selected, add CatchupSelected subop in viewfeed
-rw-r--r--backend-rpc.php19
-rw-r--r--backend.php7
-rw-r--r--db.php2
-rw-r--r--functions.php26
4 files changed, 36 insertions, 18 deletions
diff --git a/backend-rpc.php b/backend-rpc.php
index e7b42244a..6de87aa84 100644
--- a/backend-rpc.php
+++ b/backend-rpc.php
@@ -144,30 +144,15 @@
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"]);
- foreach ($ids as $id) {
+ catchupArticlesById($link, $ids, $cmode);
- if ($cmode == 0) {
- db_query($link, "UPDATE ttrss_user_entries SET
- unread = false,last_read = NOW()
- WHERE ref_id = '$id' AND owner_uid = " . $_SESSION["uid"]);
- } else if ($cmode == 1) {
- db_query($link, "UPDATE ttrss_user_entries SET
- unread = true
- WHERE ref_id = '$id' AND owner_uid = " . $_SESSION["uid"]);
- } else {
- db_query($link, "UPDATE ttrss_user_entries SET
- unread = NOT unread,last_read = NOW()
- WHERE ref_id = '$id' AND owner_uid = " . $_SESSION["uid"]);
- }
- }
print "<rpc-reply>";
print "<counters>";
getAllCounters($link);
diff --git a/backend.php b/backend.php
index 7d13184b8..4e0dfccb7 100644
--- a/backend.php
+++ b/backend.php
@@ -696,6 +696,13 @@
type=\"text/css\" href=\"tt-rss_compact.css\"/>";
}
+ if ($subop == "CatchupSelected") {
+ $ids = split(",", db_escape_string($_GET["ids"]));
+ $cmode = sprintf("%d", $_GET["cmode"]);
+
+ catchupArticlesById($link, $ids, $cmode);
+ }
+
if ($subop == "ForceUpdate" && sprintf("%d", $feed) > 0) {
update_generic_feed($link, $feed, $cat_view);
}
diff --git a/db.php b/db.php
index 6d998bd6f..d8187fc3b 100644
--- a/db.php
+++ b/db.php
@@ -61,7 +61,7 @@ function db_query($link, $query, $die_on_error = true) {
if (!$result) {
$query = htmlspecialchars($query); // just in case
if ($die_on_error) {
- die("Query <i>$query</i> failed: " . pg_last_error($link));
+ die("Query <i>$query</i> failed [$result]: " . pg_last_error($link));
}
}
return $result;
diff --git a/functions.php b/functions.php
index 03e511d9f..bb80cac57 100644
--- a/functions.php
+++ b/functions.php
@@ -2586,4 +2586,30 @@
}
}
}
+
+ function catchupArticlesById($link, $ids, $cmode) {
+
+ $tmp_ids = array();
+
+ foreach ($ids as $id) {
+ array_push($tmp_ids, "ref_id = '$id'");
+ }
+
+ $ids_qpart = join(" OR ", $tmp_ids);
+
+ if ($cmode == 0) {
+ db_query($link, "UPDATE ttrss_user_entries SET
+ unread = false,last_read = NOW()
+ WHERE ($ids_qpart) AND owner_uid = " . $_SESSION["uid"]);
+ } else if ($cmode == 1) {
+ db_query($link, "UPDATE ttrss_user_entries SET
+ unread = true
+ WHERE ($ids_qpart) AND owner_uid = " . $_SESSION["uid"]);
+ } else {
+ db_query($link, "UPDATE ttrss_user_entries SET
+ unread = NOT unread,last_read = NOW()
+ WHERE ($ids_qpart) AND owner_uid = " . $_SESSION["uid"]);
+ }
+ }
+
?>