mirror of
https://git.tt-rss.org/git/tt-rss.git
synced 2025-12-14 01:15:56 +00:00
api: implement subscribeToFeed/unsubscribeFeed (closes #623)
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
class API extends Handler {
|
class API extends Handler {
|
||||||
|
|
||||||
const API_LEVEL = 4;
|
const API_LEVEL = 5;
|
||||||
|
|
||||||
const STATUS_OK = 0;
|
const STATUS_OK = 0;
|
||||||
const STATUS_ERR = 1;
|
const STATUS_ERR = 1;
|
||||||
@@ -666,6 +666,36 @@ class API extends Handler {
|
|||||||
return $headlines;
|
return $headlines;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function unsubscribeFeed() {
|
||||||
|
$feed_id = (int) db_escape_string($this->link, $_REQUEST["feed_id"]);
|
||||||
|
|
||||||
|
$result = db_query($this->link, "SELECT id FROM ttrss_feeds WHERE
|
||||||
|
id = '$feed_id' AND owner_uid = ".$_SESSION["uid"]);
|
||||||
|
|
||||||
|
if (db_num_rows($result) != 0) {
|
||||||
|
Pref_Feeds::remove_feed($this->link, $feed_id, $_SESSION["uid"]);
|
||||||
|
print $this->wrap(self::STATUS_OK, array("status" => "OK"));
|
||||||
|
} else {
|
||||||
|
print $this->wrap(self::STATUS_ERR, array("error" => "FEED_NOT_FOUND"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function subscribeToFeed() {
|
||||||
|
$feed_url = db_escape_string($this->link, $_REQUEST["feed_url"]);
|
||||||
|
$category_id = (int) db_escape_string($this->link, $_REQUEST["category_id"]);
|
||||||
|
$login = db_escape_string($this->link, $_REQUEST["login"]);
|
||||||
|
$password = db_escape_string($this->link, $_REQUEST["password"]);
|
||||||
|
|
||||||
|
if ($feed_url) {
|
||||||
|
$rc = subscribe_to_feed($this->link, $feed_url, $category_id,
|
||||||
|
$login, $password, false);
|
||||||
|
|
||||||
|
print $this->wrap(self::STATUS_OK, array("status" => $rc));
|
||||||
|
} else {
|
||||||
|
print $this->wrap(self::STATUS_ERR, array("error" => 'INCORRECT_USAGE'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|||||||
@@ -1012,7 +1012,7 @@ class Pref_Feeds extends Handler_Protected {
|
|||||||
$ids = split(",", db_escape_string($this->link, $_REQUEST["ids"]));
|
$ids = split(",", db_escape_string($this->link, $_REQUEST["ids"]));
|
||||||
|
|
||||||
foreach ($ids as $id) {
|
foreach ($ids as $id) {
|
||||||
$this->remove_feed($this->link, $id, $_SESSION["uid"]);
|
Pref_Feeds::remove_feed($this->link, $id, $_SESSION["uid"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
@@ -1657,7 +1657,7 @@ class Pref_Feeds extends Handler_Protected {
|
|||||||
ccache_remove($link, $id, $owner_uid, true);
|
ccache_remove($link, $id, $owner_uid, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function remove_feed($link, $id, $owner_uid) {
|
static function remove_feed($link, $id, $owner_uid) {
|
||||||
|
|
||||||
if ($id > 0) {
|
if ($id > 0) {
|
||||||
|
|
||||||
|
|||||||
@@ -105,9 +105,8 @@ class RPC extends Handler_Protected {
|
|||||||
$cat = db_escape_string($this->link, $_REQUEST['cat']);
|
$cat = db_escape_string($this->link, $_REQUEST['cat']);
|
||||||
$login = db_escape_string($this->link, $_REQUEST['login']);
|
$login = db_escape_string($this->link, $_REQUEST['login']);
|
||||||
$pass = db_escape_string($this->link, $_REQUEST['pass']);
|
$pass = db_escape_string($this->link, $_REQUEST['pass']);
|
||||||
$need_auth = db_escape_string($this->link, $_REQUEST['need_auth']) != "";
|
|
||||||
|
|
||||||
$rc = subscribe_to_feed($this->link, $feed, $cat, $login, $pass, $need_auth);
|
$rc = subscribe_to_feed($this->link, $feed, $cat, $login, $pass);
|
||||||
|
|
||||||
print json_encode(array("result" => $rc));
|
print json_encode(array("result" => $rc));
|
||||||
}
|
}
|
||||||
@@ -623,7 +622,6 @@ class RPC extends Handler_Protected {
|
|||||||
$feeds = explode("\n", db_escape_string($this->link, $_REQUEST['feeds']));
|
$feeds = explode("\n", db_escape_string($this->link, $_REQUEST['feeds']));
|
||||||
$login = db_escape_string($this->link, $_REQUEST['login']);
|
$login = db_escape_string($this->link, $_REQUEST['login']);
|
||||||
$pass = db_escape_string($this->link, $_REQUEST['pass']);
|
$pass = db_escape_string($this->link, $_REQUEST['pass']);
|
||||||
$need_auth = db_escape_string($this->link, $_REQUEST['need_auth']) != "";
|
|
||||||
|
|
||||||
foreach ($feeds as $feed) {
|
foreach ($feeds as $feed) {
|
||||||
$feed = trim($feed);
|
$feed = trim($feed);
|
||||||
|
|||||||
@@ -1535,7 +1535,7 @@
|
|||||||
* 5 - Couldn't download the URL content.
|
* 5 - Couldn't download the URL content.
|
||||||
*/
|
*/
|
||||||
function subscribe_to_feed($link, $url, $cat_id = 0,
|
function subscribe_to_feed($link, $url, $cat_id = 0,
|
||||||
$auth_login = '', $auth_pass = '', $need_auth = false) {
|
$auth_login = '', $auth_pass = '') {
|
||||||
|
|
||||||
global $fetch_last_error;
|
global $fetch_last_error;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user