X-Git-Url: https://git.wh0rd.org/?a=blobdiff_plain;f=backend.php;h=92a91ef91525d03cd893f7e328d592d1f505963a;hb=de8260cb10da0ac4e49e4b3fc3a42c3578eff007;hp=2dd3c5c9b5bb7ffa99bd171a6706d4e5176b8034;hpb=6a69b6ad44eecfbc43bd21fdd15fe2042f76a3a5;p=tt-rss.git diff --git a/backend.php b/backend.php index 2dd3c5c9..92a91ef9 100644 --- a/backend.php +++ b/backend.php @@ -1,11 +1,11 @@ -

Error: Not logged in.

- - - "; + header("Content-Type: text/plain"); + print json_encode(array("error" => array("code" => 6))); } - exit; + return; } $purge_intervals = array( @@ -142,7 +103,8 @@ $update_methods = array( 0 => __("Default"), 1 => __("Magpie"), - 2 => __("SimplePie")); + 2 => __("SimplePie"), + 3 => __("Twitter OAuth")); if (DEFAULT_UPDATE_METHOD == "1") { $update_methods[0] .= ' (SimplePie)'; @@ -151,425 +113,45 @@ } $access_level_names = array( - 0 => __("User"), + 0 => __("User"), 5 => __("Power User"), 10 => __("Administrator")); - require_once "modules/pref-prefs.php"; - require_once "modules/popup-dialog.php"; - require_once "modules/help.php"; - require_once "modules/pref-feeds.php"; - require_once "modules/pref-filters.php"; - require_once "modules/pref-labels.php"; - require_once "modules/pref-users.php"; - - if (!sanity_check($link)) { return; } - - switch($op) { // Select action according to $op value. - case "rpc": - // Handle remote procedure calls. - handle_rpc_request($link); - break; // rpc - - case "feeds": - if (ENABLE_GZIP_OUTPUT) { - ob_start("ob_gzhandler"); - } - - $tags = $_REQUEST["tags"]; - - $subop = $_REQUEST["subop"]; - - switch($subop) { - case "catchupAll": - db_query($link, "UPDATE ttrss_user_entries SET - last_read = NOW(),unread = false WHERE owner_uid = " . $_SESSION["uid"]); - ccache_zero_all($link, $_SESSION["uid"]); - - break; - - case "collapse": - $cat_id = db_escape_string($_REQUEST["cid"]); - toggle_collapse_cat($link, $cat_id); - return; - break; - - case "catsortreset": - db_query($link, "UPDATE ttrss_feed_categories - SET order_id = 0 WHERE owner_uid = " . $_SESSION["uid"]); - return; - break; - - case "catsort": - $corder = db_escape_string($_REQUEST["corder"]); - - $cats = split(",", $corder); - - for ($i = 0; $i < count($cats); $i++) { - $cat_id = $cats[$i]; - - if ($cat_id > 0) { - db_query($link, "UPDATE ttrss_feed_categories - SET order_id = '$i' WHERE id = '$cat_id' AND - owner_uid = " . $_SESSION["uid"]); - } - } - - return; - break; - - } - - $_SESSION["viewfeed:counters_stamp"] = time(); - - outputFeedList($link, $tags); - break; // feeds - - case "view": - - $id = db_escape_string($_REQUEST["id"]); - $cids = split(",", db_escape_string($_REQUEST["cids"])); - $mode = db_escape_string($_REQUEST["mode"]); - $omode = db_escape_string($_REQUEST["omode"]); - - $csync = $_REQUEST["csync"]; - - print ""; - - // in prefetch mode we only output requested cids, main article - // just gets marked as read (it already exists in client cache) - - if ($mode == "") { - outputArticleXML($link, $id, false); - } else if ($mode == "zoom") { - outputArticleXML($link, $id, false, true, true); - } else { - catchupArticleById($link, $id, 0); - } - - if (!$_SESSION["bw_limit"]) { - foreach ($cids as $cid) { - if ($cid) { - outputArticleXML($link, $cid, false, false); - } - } - } - -// if (get_pref($link, "SYNC_COUNTERS") || ($mode == "prefetch" && $csync)) { - - if (time() - $_SESSION["view:counters_stamp"] > 5 && $mode == "prefetch") { - print ""; - getAllCounters($link, $omode); - print ""; - $_SESSION["view:counters_stamp"] = time(); - } - - print ""; - break; // view - - case "viewfeed": - - $print_exec_time = true; - $timing_info = getmicrotime(); - - print ""; - - if ($_REQUEST["debug"]) $timing_info = print_checkpoint("0", $timing_info); - - $omode = db_escape_string($_REQUEST["omode"]); - - $feed = db_escape_string($_REQUEST["feed"]); - $subop = db_escape_string($_REQUEST["subop"]); - $view_mode = db_escape_string($_REQUEST["view_mode"]); - $limit = (int) get_pref($link, "DEFAULT_ARTICLE_LIMIT"); - $cat_view = db_escape_string($_REQUEST["cat"]); - $next_unread_feed = db_escape_string($_REQUEST["nuf"]); - $offset = db_escape_string($_REQUEST["skip"]); - $vgroup_last_feed = db_escape_string($_REQUEST["vgrlf"]); - $csync = $_REQUEST["csync"]; - $order_by = db_escape_string($_REQUEST["order_by"]); - - /* Updating a label ccache means recalculating all of the caches - * so for performance reasons we don't do that here */ - -// if (time() - $_SESSION["viewfeed:ccache_update_stamp"] > 120) { - if ($feed >= 0) { - ccache_update($link, $feed, $_SESSION["uid"], $cat_view); - } - $_SESSION["viewfeed:ccache_update_stamp"] = time(); -// } - - set_pref($link, "_DEFAULT_VIEW_MODE", $view_mode); - set_pref($link, "_DEFAULT_VIEW_LIMIT", $limit); - set_pref($link, "_DEFAULT_VIEW_ORDER_BY", $order_by); - - if (!$cat_view && preg_match("/^[0-9][0-9]*$/", $feed)) { - db_query($link, "UPDATE ttrss_feeds SET last_viewed = NOW() - WHERE id = '$feed' AND owner_uid = ".$_SESSION["uid"]); - } - - if (!$next_unread_feed) { - print ""; - - print ""; - print ""; - - $headlines_unread = ccache_find($link, $returned_feed, $_SESSION["uid"], - $cat_view, true); - - if ($headlines_unread == -1) { - $headlines_unread = getFeedUnread($link, $returned_feed, $cat_view); - - } - - print ""; - printf("", $disable_cache); - - if ($_REQUEST["debug"]) $timing_info = print_checkpoint("10", $timing_info); - - if (is_array($topmost_article_ids) && !get_pref($link, 'COMBINED_DISPLAY_MODE') && !$_SESSION["bw_limit"]) { - print ""; - foreach ($topmost_article_ids as $id) { - outputArticleXML($link, $id, $feed, false); - } - print ""; - } - - if ($_REQUEST["debug"]) $timing_info = print_checkpoint("20", $timing_info); - - -// if (get_pref($link, "SYNC_COUNTERS") || -// time() - $_SESSION["get_all_counters_stamp"] > $viewfeed_ctr_interval) { -// print ""; -// getAllCounters($link, $omode, $feed); -// print ""; -// } - - if (get_pref($link, 'COMBINED_DISPLAY_MODE') || $subop || - time() - $_SESSION["viewfeed:counters_stamp"] > 5) { - if (!$offset) { - print ""; - getAllCounters($link, $omode, $feed); - print ""; - $_SESSION["viewfeed:counters_stamp"] = time(); - } - } - - if ($_REQUEST["debug"]) $timing_info = print_checkpoint("30", $timing_info); - - print_runtime_info($link); - - print ""; - break; // viewfeed - - case "pref-feeds": - module_pref_feeds($link); - break; // pref-feeds - - case "pref-filters": - module_pref_filters($link); - break; // pref-filters - - case "pref-labels": - module_pref_labels($link); - break; // pref-labels - - case "pref-prefs": - module_pref_prefs($link); - break; // pref-prefs - - case "pref-users": - module_pref_users($link); - break; // prefs-users - - case "help": - module_help($link); - break; // help - - case "dlg": - module_popup_dialog($link); - break; // dlg - - case "pref-pub-items": - module_pref_pub_items($link); - break; // pref-pub-items - - case "globalUpdateFeeds": - // update feeds of all users, may be used anonymously - - print ""; - - print " - - "; - break; // globalUpdateFeeds - - case "pref-feed-browser": - module_pref_feed_browser($link); - break; // pref-feed-browser - - case "publish": - $key = db_escape_string($_REQUEST["key"]); - $limit = (int)db_escape_string($_REQUEST["limit"]); - - $result = db_query($link, "SELECT login, owner_uid - FROM ttrss_user_prefs, ttrss_users WHERE - pref_name = '_PREFS_PUBLISH_KEY' AND - value = '$key' AND - ttrss_users.id = owner_uid"); - - if (db_num_rows($result) == 1) { - $owner = db_fetch_result($result, 0, "owner_uid"); - $login = db_fetch_result($result, 0, "login"); - - generate_syndicated_feed($link, $owner, -2, false, $limit); - - } else { - print "User not found"; - } - break; // publish - - case "rss": - $feed = db_escape_string($_REQUEST["id"]); - $user = db_escape_string($_REQUEST["user"]); - $pass = db_escape_string($_REQUEST["pass"]); - $is_cat = $_REQUEST["is_cat"] != false; - $limit = (int)db_escape_string($_REQUEST["limit"]); - - $search = db_escape_string($_REQUEST["q"]); - $match_on = db_escape_string($_REQUEST["m"]); - $search_mode = db_escape_string($_REQUEST["smode"]); - - if (SINGLE_USER_MODE) { - authenticate_user($link, "admin", null); - } - - if (!$_SESSION["uid"] && $user && $pass) { - authenticate_user($link, $user, $pass); - } - - if ($_SESSION["uid"] || - http_authenticate_user($link)) { - - generate_syndicated_feed($link, 0, $feed, $is_cat, $limit, - $search, $search_mode, $match_on); - } - break; // rss - - case "getUnread": - $login = db_escape_string($_REQUEST["login"]); - $fresh = $_REQUEST["fresh"] == "1"; - - header("Content-Type: text/plain; charset=utf-8"); - - $result = db_query($link, "SELECT id FROM ttrss_users WHERE login = '$login'"); - - if (db_num_rows($result) == 1) { - $uid = db_fetch_result($result, 0, "id"); - - print getGlobalUnread($link, $uid); - - if ($fresh) { - print ";"; - print getFeedArticles($link, -3, false, true, $uid); - } - - } else { - print "-1;User not found"; - } - - $print_exec_time = false; - break; // getUnread - - case "digestTest": - header("Content-Type: text/plain"); - print_r(prepare_headlines_digest($link, $_SESSION["uid"])); - $print_exec_time = false; - break; // digestTest - - case "digestSend": - header("Content-Type: text/plain"); - send_headlines_digests($link); - $print_exec_time = false; - break; // digestSend - - case "getProfiles": - $login = db_escape_string($_REQUEST["login"]); - $password = db_escape_string($_REQUEST["password"]); - - if (authenticate_user($link, $login, $password)) { - $result = db_query($link, "SELECT * FROM ttrss_settings_profiles - WHERE owner_uid = " . $_SESSION["uid"] . " ORDER BY title"); + if ($error['code'] != 0 && $op != "logout") { + print json_encode(array("error" => $error)); + return; + } - print ""; - - $_SESSION = array(); + $handler->after(); + return; } - break; + } + } - } // Select action according to $op value. + header("Content-Type: text/plain"); + print json_encode(array("error" => array("code" => 7))); // We close the connection to database. db_close($link); ?> - - - -