- 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";
- require_once "modules/pref-instances.php";
-
- $error = sanity_check($link);
-
- if ($error['code'] != 0 && $op != "logout") {
- print json_encode(array("error" => $error));
- return;
- }
-
- switch($op) { // Select action according to $op value.
- case "rpc":
- // Handle remote procedure calls.
- handle_rpc_request($link);
- break; // rpc
-
- case "feeds":
- $subop = $_REQUEST["subop"];
- $root = (bool)$_REQUEST["root"];
-
- 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"]);
- $mode = (int) db_escape_string($_REQUEST['mode']);
- toggle_collapse_cat($link, $cat_id, $mode);
- return;
- break;
- }
-
- if (!$root) {
- print json_encode(outputFeedList($link));
- } else {
-
- $feeds = outputFeedList($link, false);
-
- $root = array();
- $root['id'] = 'root';
- $root['name'] = __('Feeds');
- $root['items'] = $feeds['items'];
-
- $fl = array();
- $fl['identifier'] = 'id';
- $fl['label'] = 'name';
- $fl['items'] = array($root);
-
- print json_encode($fl);
- }
-
- break; // feeds
-
- case "la":
- $id = db_escape_string($_REQUEST['id']);
-
- $result = db_query($link, "SELECT link FROM ttrss_entries, ttrss_user_entries
- WHERE id = '$id' AND id = ref_id AND owner_uid = '".$_SESSION['uid']."'
- LIMIT 1");
-
- if (db_num_rows($result) == 1) {
- $article_url = db_fetch_result($result, 0, 'link');
- $article_url = str_replace("\n", "", $article_url);
-
- header("Location: $article_url");
- return;
-
- } else {
- print_error(__("Article not found."));
- }
- break;
-
- case "view":
-
- $id = db_escape_string($_REQUEST["id"]);
- $cids = explode(",", db_escape_string($_REQUEST["cids"]));
- $mode = db_escape_string($_REQUEST["mode"]);
- $omode = db_escape_string($_REQUEST["omode"]);
-
- // in prefetch mode we only output requested cids, main article
- // just gets marked as read (it already exists in client cache)
-
- $articles = array();
-
- if ($mode == "") {
- array_push($articles, format_article($link, $id, false));
- } else if ($mode == "zoom") {
- array_push($articles, format_article($link, $id, true, true));
- } else if ($mode == "raw") {
- if ($_REQUEST['html']) {
- header("Content-Type: text/html");
- print '<link rel="stylesheet" type="text/css" href="tt-rss.css"/>';
- }
-
- $article = format_article($link, $id, false);
- print $article['content'];
- return;
- }
-
- catchupArticleById($link, $id, 0);
-
- if (!$_SESSION["bw_limit"]) {
- foreach ($cids as $cid) {
- if ($cid) {
- array_push($articles, format_article($link, $cid, false, false));
- }
- }
- }