Error: Not logged in.

"; } exit; } $purge_intervals = array( 0 => "Use default", -1 => "Never purge", 5 => "1 week old", 14 => "2 weeks old", 31 => "1 month old", 60 => "2 months old", 90 => "3 months old"); $update_intervals = array( 0 => "Use default", -1 => "Disable updates", 30 => "Each 30 minutes", 60 => "Hourly", 240 => "Each 4 hours", 720 => "Each 12 hours", 1440 => "Daily", 10080 => "Weekly"); $access_level_names = array( 0 => "User", 10 => "Administrator"); 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-prefs.php"; require_once "modules/backend-rpc.php"; $script_started = getmicrotime(); $link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME); if (!$link) { if (DB_TYPE == "mysql") { print mysql_error(); } // PG seems to display its own errors just fine by default. return; } if (DB_TYPE == "pgsql") { pg_query("set client_encoding = 'utf-8'"); } if (!sanity_check($link)) { return; } if ($op == "rpc") { handle_rpc_request($link); } if ($op == "feeds") { $tags = $_GET["tags"]; $subop = $_GET["subop"]; if ($subop == "catchupAll") { db_query($link, "UPDATE ttrss_user_entries SET last_read = NOW(),unread = false WHERE owner_uid = " . $_SESSION["uid"]); } if ($subop == "collapse") { $cat_id = db_escape_string($_GET["cid"]); db_query($link, "UPDATE ttrss_feed_categories SET collapsed = NOT collapsed WHERE id = '$cat_id' AND owner_uid = " . $_SESSION["uid"]); return; } outputFeedList($link, $tags); } if ($op == "view") { $id = db_escape_string($_GET["id"]); $feed_id = db_escape_string($_GET["feed"]); $result = db_query($link, "SELECT rtl_content FROM ttrss_feeds WHERE id = '$feed_id' AND owner_uid = " . $_SESSION["uid"]); if (db_num_rows($result) == 1) { $rtl_content = sql_bool_to_bool(db_fetch_result($result, 0, "rtl_content")); } else { $rtl_content = false; } if ($rtl_content) { $rtl_tag = "dir=\"RTL\""; $rtl_class = "RTL"; } else { $rtl_tag = ""; $rtl_class = ""; } $result = db_query($link, "UPDATE ttrss_user_entries SET unread = false,last_read = NOW() WHERE ref_id = '$id' AND feed_id = '$feed_id' AND owner_uid = " . $_SESSION["uid"]); $result = db_query($link, "SELECT title,link,content,feed_id,comments,int_id, SUBSTRING(updated,1,16) as updated, (SELECT icon_url FROM ttrss_feeds WHERE id = feed_id) as icon_url, num_comments, author FROM ttrss_entries,ttrss_user_entries WHERE id = '$id' AND ref_id = id AND owner_uid = " . $_SESSION["uid"]); if ($result) { $link_target = ""; if (get_pref($link, 'OPEN_LINKS_IN_NEW_WINDOW')) { $link_target = "target=\"_new\""; } $line = db_fetch_assoc($result); if ($line["icon_url"]) { $feed_icon = ""; } else { $feed_icon = " "; } /* if ($line["comments"] && $line["link"] != $line["comments"]) { $entry_comments = "(Comments)"; } else { $entry_comments = ""; } */ $num_comments = $line["num_comments"]; $entry_comments = ""; if ($num_comments > 0) { if ($line["comments"]) { $comments_url = $line["comments"]; } else { $comments_url = $line["link"]; } $entry_comments = "$num_comments comments"; } else { if ($line["comments"] && $line["link"] != $line["comments"]) { $entry_comments = "comments"; } } print "
"; print "
"; $entry_author = $line["author"]; if ($entry_author) { $entry_author = " - by $entry_author"; } if ($line["link"]) { print ""; } else { print ""; } $parsed_updated = date(get_pref($link, 'LONG_DATE_FORMAT'), strtotime($line["updated"])); print ""; print ""; $tmp_result = db_query($link, "SELECT DISTINCT tag_name FROM ttrss_tags WHERE post_int_id = " . $line["int_id"] . " ORDER BY tag_name"); $tags_str = ""; $f_tags_str = ""; $num_tags = 0; while ($tmp_line = db_fetch_assoc($tmp_result)) { $num_tags++; $tag = $tmp_line["tag_name"]; $tag_str = "$tag, "; if ($num_tags == 5) { $tags_str .= "..."; } else if ($num_tags < 5) { $tags_str .= $tag_str; } $f_tags_str .= $tag_str; } $tags_str = preg_replace("/, $/", "", $tags_str); $f_tags_str = preg_replace("/, $/", "", $f_tags_str); // $truncated_link = truncate_string($line["link"], 60); if ($tags_str || $entry_comments) { print ""; } print "
" . $line["title"] . "$entry_author
" . $line["title"] . "$entry_author$parsed_updated
$entry_comments $tags_str
"; print "
" . $feed_icon . "
"; print "
"; if (db_num_rows($tmp_result) > 5) { print "
Tags: $f_tags_str
"; } if (get_pref($link, 'OPEN_LINKS_IN_NEW_WINDOW')) { $line["content"] = preg_replace("/href=/i", "target=\"_new\" href=", $line["content"]); } $line["content"] = sanitize_rss($line["content"]); print $line["content"] . "
"; print "
"; } } if ($op == "viewfeed") { $feed = db_escape_string($_GET["feed"]); $subop = db_escape_string($_GET["subop"]); $view_mode = db_escape_string($_GET["view_mode"]); $limit = db_escape_string($_GET["limit"]); $cat_view = db_escape_string($_GET["cat"]); $next_unread_feed = db_escape_string($_GET["nuf"]); if ($subop == "undefined") $subop = ""; if ($subop == "CatchupSelected") { $ids = split(",", db_escape_string($_GET["ids"])); $cmode = sprintf("%d", $_GET["cmode"]); catchupArticlesById($link, $ids, $cmode); } if ($subop == "ForceUpdate" && sprintf("%d", $feed) > 0) { update_generic_feed($link, $feed, $cat_view); } if ($subop == "MarkAllRead") { catchup_feed($link, $feed, $cat_view); if (get_pref($link, 'ON_CATCHUP_SHOW_NEXT_FEED')) { if ($next_unread_feed) { $feed = $next_unread_feed; } } } if ($feed_id > 0) { $result = db_query($link, "SELECT id FROM ttrss_feeds WHERE id = '$feed' LIMIT 1"); if (db_num_rows($result) == 0) { print "
Feed not found.
"; return; } } if (preg_match("/^-?[0-9][0-9]*$/", $feed) != false) { $result = db_query($link, "SELECT rtl_content FROM ttrss_feeds WHERE id = '$feed' AND owner_uid = " . $_SESSION["uid"]); if (db_num_rows($result) == 1) { $rtl_content = sql_bool_to_bool(db_fetch_result($result, 0, "rtl_content")); } else { $rtl_content = false; } if ($rtl_content) { $rtl_tag = "dir=\"RTL\""; } else { $rtl_tag = ""; } } else { $rtl_tag = ""; $rtl_content = false; } $script_dt_add = get_script_dt_add(); /* print " "; */ /// START ///////////////////////////////////////////////////////////////////////////////// $search = db_escape_string($_GET["query"]); $search_mode = db_escape_string($_GET["search_mode"]); $match_on = db_escape_string($_GET["match_on"]); if (!$match_on) { $match_on = "both"; } $qfh_ret = queryFeedHeadlines($link, $feed, $limit, $view_mode, $cat_view, $search, $search_mode, $match_on); $result = $qfh_ret[0]; $feed_title = $qfh_ret[1]; $feed_site_url = $qfh_ret[2]; $last_error = $qfh_ret[3]; /// STOP ////////////////////////////////////////////////////////////////////////////////// print "
"; if (!$result) { print "
Could not display feed (query failed). Please check label match syntax or local configuration.
"; return; } if (db_num_rows($result) > 0) { print_headline_subtoolbar($link, $feed_site_url, $feed_title, false, $rtl_content, $feed, $cat_view, $search, $match_on, $search_mode); print "
"; if (!get_pref($link, 'COMBINED_DISPLAY_MODE')) { print ""; } $lnum = 0; error_reporting (DEFAULT_ERROR_LEVEL); $num_unread = 0; while ($line = db_fetch_assoc($result)) { $class = ($lnum % 2) ? "even" : "odd"; $id = $line["id"]; $feed_id = $line["feed_id"]; if ($line["last_read"] == "" && ($line["unread"] != "t" && $line["unread"] != "1")) { $update_pic = "\"Updated\""; } else { $update_pic = "\"Updated\""; } if ($line["unread"] == "t" || $line["unread"] == "1") { $class .= "Unread"; ++$num_unread; $is_unread = true; } else { $is_unread = false; } if ($line["marked"] == "t" || $line["marked"] == "1") { $marked_pic = "\"Reset"; } else { $marked_pic = "\"Set"; } # $content_link = "" . # $line["title"] . ""; $content_link = "" . $line["title"] . ""; # $content_link = "" . # $line["title"] . ""; if (get_pref($link, 'HEADLINES_SMART_DATE')) { $updated_fmt = smart_date_time(strtotime($line["updated"])); } else { $short_date = get_pref($link, 'SHORT_DATE_FORMAT'); $updated_fmt = date($short_date, strtotime($line["updated"])); } if (get_pref($link, 'SHOW_CONTENT_PREVIEW')) { $content_preview = truncate_string(strip_tags($line["content_preview"]), 100); } if (!get_pref($link, 'COMBINED_DISPLAY_MODE')) { print ""; print ""; print ""; print ""; if ($line["feed_title"]) { print ""; print ""; } else { print ""; } print ""; print ""; } else { if ($is_unread) { $add_class = "Unread"; } else { $add_class = ""; } print "
"; print "
"; print "
$updated_fmt, Toggle unread
"; print "".$line["title"].""; if ($line["feed_title"]) { print " (".$line["feed_title"].")"; } print "
"; print "
" . $line["content_preview"] . "

"; print "
$marked_pic
"; # print "
# Toggle unread
"; print "
"; } ++$lnum; } if (!get_pref($link, 'COMBINED_DISPLAY_MODE')) { print "
$update_pic $marked_pic$content_link ". $line["feed_title"]." "; print "" . $line["title"]; if (get_pref($link, 'SHOW_CONTENT_PREVIEW') && !$rtl_tag) { if ($content_preview) { print " - $content_preview"; } } print ""; print "$updated_fmt 
"; } print "
"; // print_headline_subtoolbar($link, // "javascript:catchupPage()", "Mark page as read", true, $rtl_content); } else { print "
No articles found.
"; } print "
"; } if ($op == "pref-feeds") { module_pref_feeds($link); } if ($op == "pref-filters") { module_pref_filters($link); } if ($op == "pref-labels") { module_pref_labels($link); } if ($op == "error") { print "
"; $msg = $_GET["msg"]; print $msg; print "
"; } if ($op == "help") { module_help($link); } if ($op == "dlg") { module_popup_dialog($link); } // update feeds of all users, may be used anonymously if ($op == "globalUpdateFeeds") { $result = db_query($link, "SELECT id FROM ttrss_users"); while ($line = db_fetch_assoc($result)) { $user_id = $line["id"]; // print ""; update_all_feeds($link, false, $user_id); } print " "; } if ($op == "pref-prefs") { module_pref_prefs($link); } if ($op == "pref-users") { module_pref_users($link); } if ($op == "user-details") { if (WEB_DEMO_MODE || $_SESSION["access_level"] < 10) { return; } /* print " Tiny Tiny RSS : User Details "; */ $uid = sprintf("%d", $_GET["id"]); print "
User details
"; print "
"; $result = db_query($link, "SELECT login, SUBSTRING(last_login,1,16) AS last_login, access_level, (SELECT COUNT(int_id) FROM ttrss_user_entries WHERE owner_uid = id) AS stored_articles FROM ttrss_users WHERE id = '$uid'"); if (db_num_rows($result) == 0) { print "

User not found

"; return; } # print "

User Details

"; $login = db_fetch_result($result, 0, "login"); # print "

$login

"; print ""; $last_login = date(get_pref($link, 'LONG_DATE_FORMAT'), strtotime(db_fetch_result($result, 0, "last_login"))); $access_level = db_fetch_result($result, 0, "access_level"); $stored_articles = db_fetch_result($result, 0, "stored_articles"); # print ""; # print ""; print ""; print ""; $result = db_query($link, "SELECT COUNT(id) as num_feeds FROM ttrss_feeds WHERE owner_uid = '$uid'"); $num_feeds = db_fetch_result($result, 0, "num_feeds"); print ""; /* $result = db_query($link, "SELECT SUM(LENGTH(content)+LENGTH(title)+LENGTH(link)+LENGTH(guid)) AS db_size FROM ttrss_user_entries,ttrss_entries WHERE owner_uid = '$uid' AND ref_id = id"); $db_size = round(db_fetch_result($result, 0, "db_size") / 1024); print ""; */ print "
Username$login
Access level$access_level
Last logged in$last_login
Stored articles$stored_articles
Subscribed feeds count$num_feeds
Approx. used DB size$db_size KBytes
"; print "

Subscribed feeds

"; $result = db_query($link, "SELECT id,title,site_url FROM ttrss_feeds WHERE owner_uid = '$uid' ORDER BY title"); print ""; print "
"; print "
"; // print ""; } if ($op == "pref-feed-browser") { if (!ENABLE_FEED_BROWSER) { print "Feed browser is administratively disabled."; return; } $subop = $_REQUEST["subop"]; if ($subop == "details") { $id = db_escape_string($_GET["id"]); print "
"; print "Feed information:"; print "
"; $result = db_query($link, "SELECT feed_url,site_url, SUBSTRING(last_updated,1,19) AS last_updated FROM ttrss_feeds WHERE id = '$id'"); $feed_url = db_fetch_result($result, 0, "feed_url"); $site_url = db_fetch_result($result, 0, "site_url"); $last_updated = db_fetch_result($result, 0, "last_updated"); if (get_pref($link, 'HEADLINES_SMART_DATE')) { $last_updated = smart_date_time(strtotime($last_updated)); } else { $short_date = get_pref($link, 'SHORT_DATE_FORMAT'); $last_updated = date($short_date, strtotime($last_updated)); } print "Site: $site_url ". "(feed), ". "Last updated: $last_updated"; print "
"; $result = db_query($link, "SELECT ttrss_entries.title, content,link, substring(date_entered,1,19) as date_entered, substring(updated,1,19) as updated FROM ttrss_entries,ttrss_user_entries WHERE ttrss_entries.id = ref_id AND feed_id = '$id' ORDER BY updated DESC LIMIT 5"); if (db_num_rows($result) > 0) { print "Last headlines:
"; print "
"; print "
"; } print "
"; return; } print "

This panel shows feeds subscribed by other users of this system, just in case you are interested in some of them too.

"; $limit = db_escape_string($_GET["limit"]); if (!$limit) $limit = 25; $owner_uid = $_SESSION["uid"]; $result = db_query($link, "SELECT feed_url,COUNT(id) AS subscribers FROM ttrss_feeds WHERE (SELECT COUNT(id) = 0 FROM ttrss_feeds AS tf WHERE tf.feed_url = ttrss_feeds.feed_url AND owner_uid = '$owner_uid') GROUP BY feed_url ORDER BY subscribers DESC LIMIT $limit"); print "
Top
"; print "

Selection: "; print "

"; print ""; } if ($op == "rss") { $feed = db_escape_string($_GET["id"]); $user = db_escape_string($_GET["user"]); $pass = db_escape_string($_GET["pass"]); $is_cat = $_GET["is_cat"] != false; $search = db_escape_string($_GET["q"]); $match_on = db_escape_string($_GET["m"]); $search_mode = db_escape_string($_GET["smode"]); if (!$_SESSION["uid"] && $user && $pass) { authenticate_user($link, $user, $pass); } if ($_SESSION["uid"] || http_authenticate_user($link)) { generate_syndicated_feed($link, $feed, $is_cat, $search, $search_mode, $match_on); } } if ($op == "labelFromSearch") { $search = db_escape_string($_GET["search"]); $search_mode = db_escape_string($_GET["smode"]); $match_on = db_escape_string($_GET["match"]); $is_cat = db_escape_string($_GET["is_cat"]); $title = db_escape_string($_GET["title"]); $feed = sprintf("%d", $_GET["feed"]); $label_qparts = array(); $search_expr = getSearchSql($search, $match_on); if ($is_cat) { if ($feed != 0) { $search_expr .= " AND ttrss_feeds.cat_id = $feed "; } else { $search_expr .= " AND ttrss_feeds.cat_id IS NULL "; } } else { if ($search_mode == "all_feeds") { // NOOP } else if ($search_mode == "this_cat") { $tmp_result = db_query($link, "SELECT cat_id FROM ttrss_feeds WHERE id = '$feed'"); $cat_id = db_fetch_result($tmp_result, 0, "cat_id"); if ($cat_id > 0) { $search_expr .= " AND ttrss_feeds.cat_id = $cat_id "; } else { $search_expr .= " AND ttrss_feeds.cat_id IS NULL "; } } else { $search_expr .= " AND ttrss_feeds.id = $feed "; } } $search_expr = db_escape_string($search_expr); print $search_expr; if ($title) { $result = db_query($link, "INSERT INTO ttrss_labels (sql_exp,description,owner_uid) VALUES ('$search_expr', '$title', '".$_SESSION["uid"]."')"); } } if ($op == "getUnread") { $login = db_escape_string($_GET["login"]); 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); } else { print "-1;User not found"; } $print_exec_time = false; } if ($op == "digestTest") { header("Content-Type: text/plain"); print_r(prepare_headlines_digest($link, $_SESSION["uid"])); $print_exec_time = false; } if ($op == "digestSend") { header("Content-Type: text/plain"); send_headlines_digests($link); $print_exec_time = false; } db_close($link); ?>