diff options
Diffstat (limited to 'classes/api.php')
-rw-r--r-- | classes/api.php | 41 |
1 files changed, 24 insertions, 17 deletions
diff --git a/classes/api.php b/classes/api.php index a23f20ae2..74464821f 100644 --- a/classes/api.php +++ b/classes/api.php @@ -109,10 +109,10 @@ class API extends Handler { function getFeeds() { $cat_id = db_escape_string($_REQUEST["cat_id"]); - $unread_only = (bool)db_escape_string($_REQUEST["unread_only"]); + $unread_only = sql_bool_to_bool($_REQUEST["unread_only"]); $limit = (int) db_escape_string($_REQUEST["limit"]); $offset = (int) db_escape_string($_REQUEST["offset"]); - $include_nested = (bool)db_escape_string($_REQUEST["include_nested"]); + $include_nested = sql_bool_to_bool($_REQUEST["include_nested"]); $feeds = $this->api_get_feeds($this->link, $cat_id, $unread_only, $limit, $offset, $include_nested); @@ -120,8 +120,8 @@ class API extends Handler { } function getCategories() { - $unread_only = (bool)db_escape_string($_REQUEST["unread_only"]); - $enable_nested = (bool)db_escape_string($_REQUEST["enable_nested"]); + $unread_only = sql_bool_to_bool($_REQUEST["unread_only"]); + $enable_nested = sql_bool_to_bool($_REQUEST["enable_nested"]); // TODO do not return empty categories, return Uncategorized and standard virtual cats @@ -180,14 +180,14 @@ class API extends Handler { $offset = (int)db_escape_string($_REQUEST["skip"]); $filter = db_escape_string($_REQUEST["filter"]); - $is_cat = (bool)db_escape_string($_REQUEST["is_cat"]); - $show_excerpt = (bool)db_escape_string($_REQUEST["show_excerpt"]); - $show_content = (bool)db_escape_string($_REQUEST["show_content"]); + $is_cat = sql_bool_to_bool($_REQUEST["is_cat"]); + $show_excerpt = sql_bool_to_bool($_REQUEST["show_excerpt"]); + $show_content = sql_bool_to_bool($_REQUEST["show_content"]); /* all_articles, unread, adaptive, marked, updated */ $view_mode = db_escape_string($_REQUEST["view_mode"]); - $include_attachments = (bool)db_escape_string($_REQUEST["include_attachments"]); + $include_attachments = sql_bool_to_bool($_REQUEST["include_attachments"]); $since_id = (int)db_escape_string($_REQUEST["since_id"]); - $include_nested = (bool)db_escape_string($_REQUEST["include_nested"]); + $include_nested = sql_bool_to_bool($_REQUEST["include_nested"]); $sanitize_content = true; /* do not rely on params below */ @@ -219,12 +219,15 @@ class API extends Handler { switch ($field_raw) { case 0: $field = "marked"; + $additional_fields = ",last_marked = NOW()"; break; case 1: $field = "published"; + $additional_fields = ",last_published = NOW()"; break; case 2: $field = "unread"; + $additional_fields = ",last_read = NOW()"; break; case 3: $field = "note"; @@ -248,14 +251,7 @@ class API extends Handler { $article_ids = join(", ", $article_ids); - if ($field == "unread") { - $result = db_query($this->link, "UPDATE ttrss_user_entries SET $field = $set_to, - last_read = NOW() - WHERE ref_id IN ($article_ids) AND owner_uid = " . $_SESSION["uid"]); - } else { - $result = db_query($this->link, "UPDATE ttrss_user_entries SET $field = $set_to - WHERE ref_id IN ($article_ids) AND owner_uid = " . $_SESSION["uid"]); - } + $result = db_query($this->link, "UPDATE ttrss_user_entries SET $field = $set_to $additional_fields WHERE ref_id IN ($article_ids) AND owner_uid = " . $_SESSION["uid"]); $num_updated = db_affected_rows($this->link, $result); @@ -268,6 +264,17 @@ class API extends Handler { } } + if ($num_updated > 0 && $field == "published") { + if (PUBSUBHUBBUB_HUB) { + $rss_link = get_self_url_prefix() . + "/public.php?op=rss&id=-2&key=" . + get_feed_access_key($this->link, -2, false); + + $p = new Publisher(PUBSUBHUBBUB_HUB); + $pubsub_result = $p->publish_update($rss_link); + } + } + print $this->wrap(self::STATUS_OK, array("status" => "OK", "updated" => $num_updated)); |