summaryrefslogtreecommitdiff
path: root/classes/rpc.php
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2021-02-24 09:47:26 +0300
committerAndrew Dolgov <[email protected]>2021-02-24 09:47:26 +0300
commitd6203bf3508ba77e3943ddc412eb562edb327f22 (patch)
treeeb0e56ff62add4705c200903d559fa7d3f412acb /classes/rpc.php
parenta42e8aad97b66fd4964263e37a1b40164e495b4c (diff)
try to calculate counters conditionally based on feed ids
Diffstat (limited to 'classes/rpc.php')
-rwxr-xr-xclasses/rpc.php32
1 files changed, 24 insertions, 8 deletions
diff --git a/classes/rpc.php b/classes/rpc.php
index d0388a066..7caf37cf0 100755
--- a/classes/rpc.php
+++ b/classes/rpc.php
@@ -73,14 +73,21 @@ class RPC extends Handler_Protected {
}
function getAllCounters() {
+ $feed_ids = array_map("intval",
+ explode(",",
+ clean($_REQUEST["feed_ids"])));
+
@$seq = (int) $_REQUEST['seq'];
+ // @phpstan-ignore-next-line
+ $counters = count($feed_ids) > 0 ? Counters::get_for_feeds($feed_ids) : Counters::get_all();
+
$reply = [
- 'counters' => Counters::get_all(),
+ 'counters' => $counters,
'seq' => $seq
];
- if ($seq % 2 == 0)
+ if ($seq % 2)
$reply['runtime-info'] = $this->make_runtime_info();
print json_encode($reply);
@@ -88,30 +95,39 @@ class RPC extends Handler_Protected {
/* GET["cmode"] = 0 - mark as read, 1 - as unread, 2 - toggle */
function catchupSelected() {
- $ids = explode(",", clean($_REQUEST["ids"]));
+ $ids = array_map("intval",
+ explode(",",
+ clean($_REQUEST["ids"])));
+
$cmode = (int)clean($_REQUEST["cmode"]);
Article::_catchup_by_id($ids, $cmode);
- print json_encode(array("message" => "UPDATE_COUNTERS", "ids" => $ids));
+ print json_encode(["message" => "UPDATE_COUNTERS", "feeds" => Article::_feeds_of($ids)]);
}
function markSelected() {
- $ids = explode(",", clean($_REQUEST["ids"]));
+ $ids = array_map("intval",
+ explode(",",
+ clean($_REQUEST["ids"])));
+
$cmode = (int)clean($_REQUEST["cmode"]);
$this->markArticlesById($ids, $cmode);
- print json_encode(array("message" => "UPDATE_COUNTERS"));
+ print json_encode(["message" => "UPDATE_COUNTERS", "feeds" => Article::_feeds_of($ids)]);
}
function publishSelected() {
- $ids = explode(",", clean($_REQUEST["ids"]));
+ $ids = array_map("intval",
+ explode(",",
+ clean($_REQUEST["ids"])));
+
$cmode = (int)clean($_REQUEST["cmode"]);
$this->publishArticlesById($ids, $cmode);
- print json_encode(array("message" => "UPDATE_COUNTERS"));
+ print json_encode(["message" => "UPDATE_COUNTERS", "feeds" => Article::_feeds_of($ids)]);
}
function sanityCheck() {