X-Git-Url: https://git.wh0rd.org/?a=blobdiff_plain;f=modules%2Fbackend-rpc.php;h=228d45a78eabbdecbb5ae41f54cd30042793f9cf;hb=6a7817c1ad684ea6eb0b02180e6d2040b3cb0a77;hp=1e0732ef82a612ecb48fae91459a6cf40e9328c9;hpb=ef88b1cca37705b97e939ac7fc500aff0b646dbf;p=tt-rss.git diff --git a/modules/backend-rpc.php b/modules/backend-rpc.php index 1e0732ef..228d45a7 100644 --- a/modules/backend-rpc.php +++ b/modules/backend-rpc.php @@ -3,6 +3,87 @@ $subop = $_REQUEST["subop"]; + if ($subop == "setprofile") { + $id = db_escape_string($_REQUEST["id"]); + + $_SESSION["profile"] = $id; + $_SESSION["prefs_cache"] = array(); + return; + } + + if ($subop == "remprofiles") { + $ids = split(",", db_escape_string(trim($_REQUEST["ids"]))); + + foreach ($ids as $id) { + if ($_SESSION["profile"] != $id) { + db_query($link, "DELETE FROM ttrss_settings_profiles WHERE id = '$id' AND + owner_uid = " . $_SESSION["uid"]); + } + } + return; + } + + if ($subop == "addprofile") { + $title = db_escape_string(trim($_REQUEST["title"])); + if ($title) { + db_query($link, "BEGIN"); + + $result = db_query($link, "SELECT id FROM ttrss_settings_profiles + WHERE title = '$title' AND owner_uid = " . $_SESSION["uid"]); + + if (db_num_rows($result) == 0) { + + db_query($link, "INSERT INTO ttrss_settings_profiles (title, owner_uid) + VALUES ('$title', ".$_SESSION["uid"] .")"); + + $result = db_query($link, "SELECT id FROM ttrss_settings_profiles WHERE + title = '$title'"); + + if (db_num_rows($result) != 0) { + $profile_id = db_fetch_result($result, 0, "id"); + + if ($profile_id) { + initialize_user_prefs($link, $_SESSION["uid"], $profile_id); + } + } + } + + db_query($link, "COMMIT"); + } + return; + } + + if ($subop == "saveprofile") { + $id = db_escape_string($_REQUEST["id"]); + $title = db_escape_string(trim($_REQUEST["value"])); + + if ($id == 0) { + print __("Default profile"); + return; + } + + if ($title) { + db_query($link, "BEGIN"); + + $result = db_query($link, "SELECT id FROM ttrss_settings_profiles + WHERE title = '$title' AND owner_uid =" . $_SESSION["uid"]); + + if (db_num_rows($result) == 0) { + db_query($link, "UPDATE ttrss_settings_profiles + SET title = '$title' WHERE id = '$id' AND + owner_uid = " . $_SESSION["uid"]); + print $title; + } else { + $result = db_query($link, "SELECT title FROM ttrss_settings_profiles + WHERE id = '$id' AND owner_uid =" . $_SESSION["uid"]); + print db_fetch_result($result, 0, "title"); + } + + db_query($link, "COMMIT"); + } + return; + } + if ($subop == "remarchive") { $ids = split(",", db_escape_string($_REQUEST["ids"])); @@ -42,11 +123,23 @@ } - if ($subop == "setpref") { - if (WEB_DEMO_MODE) { - return; - } + if ($subop == "togglepref") { + print ""; + + $key = db_escape_string($_REQUEST["key"]); + + set_pref($link, $key, !get_pref($link, $key)); + + $value = get_pref($link, $key); + + print ""; + print ""; + + return; + } + + if ($subop == "setpref") { print ""; $key = db_escape_string($_REQUEST["key"]); @@ -63,12 +156,11 @@ if ($subop == "getAllCounters") { print ""; - print ""; + print ""; + print "]]>"; print_runtime_info($link); print ""; @@ -90,14 +182,9 @@ $result = db_query($link, "UPDATE ttrss_user_entries SET marked = $mark WHERE ref_id = '$id' AND owner_uid = " . $_SESSION["uid"]); - print ""; - getGlobalCounters($link); - getVirtCounters($link); - getLabelCounters($link); - if (get_pref($link, 'ENABLE_FEED_CATS')) { - getCategoryCounters($link); - } - print ""; + print ""; return; } @@ -108,13 +195,9 @@ $result = db_query($link, "DELETE FROM ttrss_user_entries WHERE ref_id IN ($ids) AND owner_uid = " . $_SESSION["uid"]); - print ""; - getGlobalCounters($link); - getVirtCounters($link); - if (get_pref($link, 'ENABLE_FEED_CATS')) { - getCategoryCounters($link); - } - print ""; + print ""; return; } @@ -126,13 +209,9 @@ SET feed_id = orig_feed_id, orig_feed_id = NULL WHERE ref_id IN ($ids) AND owner_uid = " . $_SESSION["uid"]); - print ""; - getGlobalCounters($link); - getVirtCounters($link); - if (get_pref($link, 'ENABLE_FEED_CATS')) { - getCategoryCounters($link); - } - print ""; + print ""; return; } @@ -144,13 +223,9 @@ archive_article($link, $id, $_SESSION["uid"]); } - print ""; - getGlobalCounters($link); - getVirtCounters($link); - if (get_pref($link, 'ENABLE_FEED_CATS')) { - getCategoryCounters($link); - } - print ""; + print ""; return; } @@ -181,14 +256,9 @@ print ""; - print ""; - getGlobalCounters($link); - getVirtCounters($link); - getLabelCounters($link); - if (get_pref($link, 'ENABLE_FEED_CATS')) { - getCategoryCounters($link); - } - print ""; + print ""; if ($note != 'undefined') { $note_size = strlen($note); @@ -205,19 +275,12 @@ if ($subop == "updateFeed") { $feed_id = db_escape_string($_REQUEST["feed"]); - $result = db_query($link, - "SELECT feed_url FROM ttrss_feeds WHERE id = '$feed_id' - AND owner_uid = " . $_SESSION["uid"]); - - if (db_num_rows($result) > 0) { - $feed_url = db_fetch_result($result, 0, "feed_url"); - update_rss_feed($link, $feed_url, $feed_id); - } + update_rss_feed($link, $feed_id); print ""; - print ""; - getFeedCounter($link, $feed_id); - print ""; + print ""; print ""; return; @@ -230,31 +293,14 @@ print ""; - print ""; + print ""; + print "]]>"; print_runtime_info($link); @@ -272,9 +318,10 @@ catchupArticlesById($link, $ids, $cmode); print ""; - print ""; - getAllCounters($link, $_REQUEST["omode"]); - print ""; + print ""; + print_runtime_info($link); print ""; @@ -289,9 +336,9 @@ markArticlesById($link, $ids, $cmode); print ""; - print ""; - getAllCounters($link, $_REQUEST["omode"]); - print ""; + print ""; print_runtime_info($link); print ""; @@ -306,9 +353,9 @@ publishArticlesById($link, $ids, $cmode); print ""; - print ""; - getAllCounters($link, $_REQUEST["omode"]); - print ""; + print ""; print_runtime_info($link); print ""; @@ -359,6 +406,8 @@ if ($subop == "setArticleTags") { + global $memcache; + $id = db_escape_string($_REQUEST["id"]); $tags_str = db_escape_string($_REQUEST["tags_str"]); @@ -399,6 +448,11 @@ db_query($link, "COMMIT"); + if ($memcache) { + $obj_id = md5("TAGS:".$_SESSION["uid"].":$id"); + $memcache->delete($obj_id); + } + $tags_str = format_tags_string(get_article_tags($link, $id), $id); print " @@ -412,7 +466,7 @@ print ""; - set_pref($link, "_PREFS_PUBLISH_KEY", generate_publish_key()); + set_pref($link, "_PREFS_PUBLISH_KEY", generate_publish_key(), $_SESSION["uid"]); $new_link = article_publish_url($link); @@ -423,6 +477,16 @@ return; } + if ($subop == "regenOPMLKey") { + + print ""; + set_pref($link, " _PREFS_OPML_PUBLISH_KEY", generate_publish_key(), $_SESSION["uid"]); + $new_link = opml_publish_url($link); + print ""; + print ""; + return; + } + if ($subop == "logout") { logout_user(); print_error_xml(6); @@ -546,9 +610,9 @@ print ""; - print ""; - getAllCounters($link, $omode); - print ""; + print ""; print ""; return; @@ -583,9 +647,9 @@ print ""; - print ""; - getAllCounters($link, $omode); - print ""; + print ""; print ""; return; @@ -875,6 +939,84 @@ return; } + if ($subop == "digest-get-contents") { + $article_id = db_escape_string($_REQUEST['article_id']); + + $result = db_query($link, "SELECT content + FROM ttrss_entries, ttrss_user_entries + WHERE id = '$article_id' AND ref_id = id AND owner_uid = ".$_SESSION['uid']); + + print ""; + + print "
"; + + print "
"; + + return; + } + + if ($subop == "digest-update") { + $feed_id = db_escape_string($_REQUEST['feed_id']); + $offset = db_escape_string($_REQUEST['offset']); + $seq = db_escape_string($_REQUEST['seq']); + + if (!$feed_id) $feed_id = -4; + if (!$offset) $offset = 0; + print ""; + + print "$seq"; + + $headlines = api_get_headlines($link, $feed_id, 10, $offset, + '', ($feed_id == -4), true, false, "unread", "updated DESC"); + + //function api_get_headlines($link, $feed_id, $limit, $offset, + // $filter, $is_cat, $show_excerpt, $show_content, $view_mode) { + + print ""; + + print ""; + + print ""; + return; + } + + if ($subop == "digest-init") { + print ""; + + $tmp_feeds = api_get_feeds($link, false, true, false, 0); + $feeds = array(); + + foreach ($tmp_feeds as $f) { + if ($f['id'] > 0 || $f['id'] == -4) array_push($feeds, $f); + } + + print ""; + + print ""; + return; + } + + if ($subop == "catchupFeed") { + + $feed_id = db_escape_string($_REQUEST['feed_id']); + $is_cat = db_escape_string($_REQUEST['is_cat']); + + print ""; + + catchup_feed($link, $feed_id, $is_cat); + + print ""; + + return; + } + print "Unknown method: $subop"; } ?>