diff options
author | Andrew Dolgov <[email protected]> | 2012-01-29 17:51:00 +0400 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2012-01-29 17:51:00 +0400 |
commit | 33f0fdd0a21ca7999e2d9d1a8db438711e518587 (patch) | |
tree | 4829fd4c4d03e9f89adced99036a63cd1fc5a231 /classes/rpc.php | |
parent | 5081319e23daad80694701866e7aa0297f02ca53 (diff) |
prefs: implement batch subscribe to feeds
Diffstat (limited to 'classes/rpc.php')
-rw-r--r-- | classes/rpc.php | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/classes/rpc.php b/classes/rpc.php index 58e25a456..ef89a2141 100644 --- a/classes/rpc.php +++ b/classes/rpc.php @@ -788,5 +788,54 @@ class RPC extends Protected_Handler { print json_encode(array("hash" => $hash)); } + + function batchAddFeeds() { + $cat_id = db_escape_string($_REQUEST['cat']); + $feeds = explode("\n", db_escape_string($_REQUEST['feeds'])); + $login = db_escape_string($_REQUEST['login']); + $pass = db_escape_string($_REQUEST['pass']); + $need_auth = db_escape_string($_REQUEST['need_auth']) != ""; + + $result = db_query($this->link, "SELECT twitter_oauth FROM ttrss_users +WHERE id = ".$_SESSION['uid']); + $has_oauth = db_fetch_result($result, 0, 'twitter_oauth') != ""; + + foreach ($feeds as $feed) { + $feed = trim($feed); + + if (validate_feed_url($feed)) { + + db_query($this->link, "BEGIN"); + + if (!$need_auth || !$has_oauth || strpos($url, '://api.twitter.com') + === false) { + $update_method = 0; + } else { + $update_method = 3; + } + + if ($cat_id == "0" || !$cat_id) { + $cat_qpart = "NULL"; + } else { + $cat_qpart = "'$cat_id'"; + } + + $result = db_query($this->link, + "SELECT id FROM ttrss_feeds + WHERE feed_url = '$feed' AND owner_uid = ".$_SESSION["uid"]); + + if (db_num_rows($result) == 0) { + $result = db_query($this->link, + "INSERT INTO ttrss_feeds + (owner_uid,feed_url,title,cat_id,auth_login,auth_pass,update_method) + VALUES ('".$_SESSION["uid"]."', '$feed', + '[Unknown]', $cat_qpart, '$login', '$pass', '$update_method')"); + } + + db_query($this->link, "COMMIT"); + } + } + } + } ?> |