summaryrefslogtreecommitdiff
path: root/modules/backend-rpc.php
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2009-02-17 12:22:31 +0300
committerAndrew Dolgov <[email protected]>2009-02-17 12:22:31 +0300
commit492a4a6ac8c63239ecf67fda0acfc2afca9df457 (patch)
tree225e0ce45d5cf1f76735e38dee16818154f81126 /modules/backend-rpc.php
parent65c0779b7750e1c80827d852d97b8ca233f7454e (diff)
offline: sync marked/unread status
Diffstat (limited to 'modules/backend-rpc.php')
-rw-r--r--modules/backend-rpc.php25
1 files changed, 18 insertions, 7 deletions
diff --git a/modules/backend-rpc.php b/modules/backend-rpc.php
index e3d9e6165..d7700d66a 100644
--- a/modules/backend-rpc.php
+++ b/modules/backend-rpc.php
@@ -547,8 +547,6 @@
$unread = bool_to_sql_bool((bool) $e[1]);
$marked = bool_to_sql_bool((bool) $e[2]);
- /* Marked status is not synchronized yet */
-
$query = "UPDATE ttrss_user_entries SET
unread = $unread,
last_read = '$last_online'
@@ -558,23 +556,36 @@
$result = db_query($link, $query);
-// if (db_affected_rows($result) > 0) {
- print "<sync-ok id=\"$id\"/>";
-// }
+ if ($marked) {
+ $query = "UPDATE ttrss_user_entries SET
+ marked = $marked,
+ last_read = '$last_online'
+ WHERE ref_id = '$id' AND
+ (last_read IS NULL OR last_read < '$last_online') AND
+ owner_uid = ".$_SESSION["uid"];
+
+ $result = db_query($link, $query);
+ }
+
+ print "<sync-ok id=\"$id\"/>";
}
}
/* Maybe we need to further update local DB for this client */
- $query = "SELECT ref_id,unread FROM ttrss_user_entries
+ $query = "SELECT ref_id,unread,marked FROM ttrss_user_entries
WHERE last_read >= '$last_online' AND
owner_uid = ".$_SESSION["uid"] . " LIMIT 1000";
$result = db_query($link, $query);
while ($line = db_fetch_assoc($result)) {
- print "<sync-ok id=\"".$line["ref_id"]."\"/>";
+ $unread = (int) sql_bool_to_bool($line["unread"]);
+ $marked = (int) sql_bool_to_bool($line["marked"]);
+
+ print "<sync-ok unread=\"$unread\" marked=\"$marked\"
+ id=\"".$line["ref_id"]."\"/>";
}
}