function getFeedArticles($link, $feed, $is_cat = false, $unread_only = false, $owner_uid = false) { $n_feed = (int) $feed; if (!$owner_uid) { $owner_uid = $_SESSION["uid"]; } if ($unread_only) { $unread_qpart = "unread = true"; } else { $unread_qpart = "true"; } $age_qpart = getMaxAgeSubquery(); if ($is_cat) { return getCategoryUnread($link, $n_feed, $owner_uid); } if ($feed != "0" && $n_feed == 0) { $result = db_query($link, "SELECT SUM((SELECT COUNT(int_id)\n\t\t\t\tFROM ttrss_user_entries,ttrss_entries WHERE int_id = post_int_id \n\t\t\t\t\tAND ref_id = id AND {$age_qpart}\n\t\t\t\t\tAND {$unread_qpart})) AS count FROM ttrss_tags \n\t\t\t\tWHERE owner_uid = {$owner_uid} AND tag_name = '{$feed}'"); return db_fetch_result($result, 0, "count"); } else { if ($n_feed == -1) { $match_part = "marked = true"; } else { if ($n_feed == -2) { $match_part = "published = true"; } else { if ($n_feed == -3) { $match_part = "unread = true"; $intl = get_pref($link, "FRESH_ARTICLE_MAX_AGE", $owner_uid); if (DB_TYPE == "pgsql") { $match_part .= " AND updated > NOW() - INTERVAL '{$intl} hour' "; } else { $match_part .= " AND updated > DATE_SUB(NOW(), INTERVAL {$intl} HOUR) "; } } else { if ($n_feed == -4) { $match_part = "true"; } else { if ($n_feed >= 0) { $result = db_query($link, "SELECT id FROM ttrss_feeds \n\t\t\t\t\tWHERE parent_feed = '{$n_feed}'\n\t\t\t\t\tAND owner_uid = " . $owner_uid); if (db_num_rows($result) > 0) { $linked_feeds = array(); while ($line = db_fetch_assoc($result)) { array_push($linked_feeds, "feed_id = " . $line["id"]); } array_push($linked_feeds, "feed_id = {$n_feed}"); $match_part = implode(" OR ", $linked_feeds); $tmp_result = db_query($link, "SELECT COUNT(int_id) AS unread \n\t\t\t\t\tFROM ttrss_user_entries,ttrss_entries\n\t\t\t\t\tWHERE\t{$unread_qpart} AND\n\t\t\t\t\tttrss_user_entries.ref_id = ttrss_entries.id AND\n\t\t\t\t\t{$age_qpart} AND\n\t\t\t\t\t({$match_part}) AND\n\t\t\t\t\towner_uid = " . $owner_uid); $unread = 0; # this needs to be rewritten while ($line = db_fetch_assoc($tmp_result)) { $unread += $line["unread"]; } return $unread; } else { if ($n_feed != 0) { $match_part = "feed_id = '{$n_feed}'"; } else { $match_part = "feed_id IS NULL"; } } } else { if ($feed < -10) { $label_id = -$feed - 11; return getLabelUnread($link, $label_id, $owner_uid); } } } } } } } if ($match_part) { if ($n_feed != 0) { $from_qpart = "ttrss_user_entries,ttrss_feeds,ttrss_entries"; $feeds_qpart = "ttrss_user_entries.feed_id = ttrss_feeds.id AND"; } else { $from_qpart = "ttrss_user_entries,ttrss_entries"; } $query = "SELECT count(int_id) AS unread \n\t\t\t\tFROM {$from_qpart} WHERE\n\t\t\t\tttrss_user_entries.ref_id = ttrss_entries.id AND \n\t\t\t\t{$age_qpart} AND\n\t\t\t\t{$feeds_qpart}\n\t\t\t\t{$unread_qpart} AND ({$match_part}) AND ttrss_user_entries.owner_uid = {$owner_uid}"; $result = db_query($link, $query); } else { $result = db_query($link, "SELECT COUNT(post_int_id) AS unread\n\t\t\t\tFROM ttrss_tags,ttrss_user_entries,ttrss_entries \n\t\t\t\tWHERE tag_name = '{$feed}' AND post_int_id = int_id AND ref_id = ttrss_entries.id \n\t\t\t\tAND {$unread_qpart} AND {$age_qpart} AND\n\t\t\t\t\tttrss_tags.owner_uid = " . $owner_uid); } $unread = db_fetch_result($result, 0, "unread"); return $unread; }
function getFeedArticles($feed, $is_cat = false, $unread_only = false, $owner_uid = false) { $n_feed = (int) $feed; $need_entries = false; if (!$owner_uid) { $owner_uid = $_SESSION["uid"]; } if ($unread_only) { $unread_qpart = "unread = true"; } else { $unread_qpart = "true"; } if ($is_cat) { return getCategoryUnread($n_feed, $owner_uid); } else { if ($n_feed == -6) { return 0; } else { if ($feed != "0" && $n_feed == 0) { $feed = db_escape_string($feed); $result = db_query("SELECT SUM((SELECT COUNT(int_id)\n\t\t\t\tFROM ttrss_user_entries,ttrss_entries WHERE int_id = post_int_id\n\t\t\t\t\tAND ref_id = id AND {$unread_qpart})) AS count FROM ttrss_tags\n\t\t\t\tWHERE owner_uid = {$owner_uid} AND tag_name = '{$feed}'"); return db_fetch_result($result, 0, "count"); } else { if ($n_feed == -1) { $match_part = "marked = true"; } else { if ($n_feed == -2) { $match_part = "published = true"; } else { if ($n_feed == -3) { $match_part = "unread = true AND score >= 0"; $intl = get_pref("FRESH_ARTICLE_MAX_AGE", $owner_uid); if (DB_TYPE == "pgsql") { $match_part .= " AND date_entered > NOW() - INTERVAL '{$intl} hour' "; } else { $match_part .= " AND date_entered > DATE_SUB(NOW(), INTERVAL {$intl} HOUR) "; } $need_entries = true; } else { if ($n_feed == -4) { $match_part = "true"; } else { if ($n_feed >= 0) { if ($n_feed != 0) { $match_part = "feed_id = '{$n_feed}'"; } else { $match_part = "feed_id IS NULL"; } } else { if ($feed < LABEL_BASE_INDEX) { $label_id = feed_to_label_id($feed); return getLabelUnread($label_id, $owner_uid); } } } } } } } } } if ($match_part) { if ($need_entries) { $from_qpart = "ttrss_user_entries,ttrss_entries"; $from_where = "ttrss_entries.id = ttrss_user_entries.ref_id AND"; } else { $from_qpart = "ttrss_user_entries"; $from_where = ""; } $query = "SELECT count(int_id) AS unread\n\t\t\t\tFROM {$from_qpart} WHERE\n\t\t\t\t{$unread_qpart} AND {$from_where} ({$match_part}) AND ttrss_user_entries.owner_uid = {$owner_uid}"; //echo "[$feed/$query]\n"; $result = db_query($query); } else { $result = db_query("SELECT COUNT(post_int_id) AS unread\n\t\t\t\tFROM ttrss_tags,ttrss_user_entries,ttrss_entries\n\t\t\t\tWHERE tag_name = '{$feed}' AND post_int_id = int_id AND ref_id = ttrss_entries.id\n\t\t\t\tAND {$unread_qpart} AND ttrss_tags.owner_uid = " . $owner_uid); } $unread = db_fetch_result($result, 0, "unread"); return $unread; }
function getFeedArticles($link, $feed, $is_cat = false, $unread_only = false, $owner_uid = false) { $n_feed = (int) $feed; if (!$owner_uid) { $owner_uid = $_SESSION["uid"]; } if ($unread_only) { $unread_qpart = "unread = true"; } else { $unread_qpart = "true"; } $age_qpart = getMaxAgeSubquery(); if ($is_cat) { return getCategoryUnread($link, $n_feed, $owner_uid); } if ($feed != "0" && $n_feed == 0) { $feed = db_escape_string($feed); $result = db_query($link, "SELECT SUM((SELECT COUNT(int_id)\n\t\t\t\tFROM ttrss_user_entries,ttrss_entries WHERE int_id = post_int_id\n\t\t\t\t\tAND ref_id = id AND {$age_qpart}\n\t\t\t\t\tAND {$unread_qpart})) AS count FROM ttrss_tags\n\t\t\t\tWHERE owner_uid = {$owner_uid} AND tag_name = '{$feed}'"); return db_fetch_result($result, 0, "count"); } else { if ($n_feed == -1) { $match_part = "marked = true"; } else { if ($n_feed == -2) { $match_part = "published = true"; } else { if ($n_feed == -3) { $match_part = "unread = true AND score >= 0"; $intl = get_pref($link, "FRESH_ARTICLE_MAX_AGE", $owner_uid); if (DB_TYPE == "pgsql") { $match_part .= " AND updated > NOW() - INTERVAL '{$intl} hour' "; } else { $match_part .= " AND updated > DATE_SUB(NOW(), INTERVAL {$intl} HOUR) "; } } else { if ($n_feed == -4) { $match_part = "true"; } else { if ($n_feed >= 0) { if ($n_feed != 0) { $match_part = "feed_id = '{$n_feed}'"; } else { $match_part = "feed_id IS NULL"; } } else { if ($feed < -10) { $label_id = -$feed - 11; return getLabelUnread($link, $label_id, $owner_uid); } } } } } } } if ($match_part) { if ($n_feed != 0) { $from_qpart = "ttrss_user_entries,ttrss_feeds,ttrss_entries"; $feeds_qpart = "ttrss_user_entries.feed_id = ttrss_feeds.id AND"; } else { $from_qpart = "ttrss_user_entries,ttrss_entries"; $feeds_qpart = ''; } $query = "SELECT count(int_id) AS unread\n\t\t\t\tFROM {$from_qpart} WHERE\n\t\t\t\tttrss_user_entries.ref_id = ttrss_entries.id AND\n\t\t\t\t{$age_qpart} AND\n\t\t\t\t{$feeds_qpart}\n\t\t\t\t{$unread_qpart} AND ({$match_part}) AND ttrss_user_entries.owner_uid = {$owner_uid}"; $result = db_query($link, $query); } else { $result = db_query($link, "SELECT COUNT(post_int_id) AS unread\n\t\t\t\tFROM ttrss_tags,ttrss_user_entries,ttrss_entries\n\t\t\t\tWHERE tag_name = '{$feed}' AND post_int_id = int_id AND ref_id = ttrss_entries.id\n\t\t\t\tAND {$unread_qpart} AND {$age_qpart} AND\n\t\t\t\t\tttrss_tags.owner_uid = " . $owner_uid); } $unread = db_fetch_result($result, 0, "unread"); return $unread; }