Example #1
0
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;
}
Example #2
0
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;
}
Example #3
0
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;
}