示例#1
0
 function getUnread()
 {
     $login = db_escape_string($_REQUEST["login"]);
     $fresh = $_REQUEST["fresh"] == "1";
     $result = db_query($this->link, "SELECT id FROM ttrss_users WHERE login = '******'");
     if (db_num_rows($result) == 1) {
         $uid = db_fetch_result($result, 0, "id");
         print getGlobalUnread($this->link, $uid);
         if ($fresh) {
             print ";";
             print getFeedArticles($this->link, -3, false, true, $uid);
         }
     } else {
         print "-1;User not found";
     }
 }
示例#2
0
function getVirtCounters()
{
    $ret_arr = array();
    for ($i = 0; $i >= -4; $i--) {
        $count = getFeedUnread($i);
        if ($i == 0 || $i == -1 || $i == -2) {
            $auxctr = getFeedArticles($i, false);
        } else {
            $auxctr = 0;
        }
        $cv = array("id" => $i, "counter" => (int) $count, "auxcounter" => $auxctr);
        //			if (get_pref('EXTENDED_FEEDLIST'))
        //				$cv["xmsg"] = getFeedArticles($i)." ".__("total");
        array_push($ret_arr, $cv);
    }
    $feeds = PluginHost::getInstance()->get_feeds(-1);
    if (is_array($feeds)) {
        foreach ($feeds as $feed) {
            $cv = array("id" => PluginHost::pfeed_to_feed_id($feed['id']), "counter" => $feed['sender']->get_unread($feed['id']));
            if (method_exists($feed['sender'], 'get_total')) {
                $cv["auxcounter"] = $feed['sender']->get_total($feed['id']);
            }
            array_push($ret_arr, $cv);
        }
    }
    return $ret_arr;
}
示例#3
0
function getFeedCounters($active_feed = false)
{
    $ret_arr = array();
    $query = "SELECT ttrss_feeds.id,\n            ttrss_feeds.title,\n            " . SUBSTRING_FOR_DATE . "(ttrss_feeds.last_updated,1,19) AS last_updated,\n            last_error, value AS count\n        FROM ttrss_feeds, ttrss_counters_cache\n        WHERE ttrss_feeds.owner_uid = " . $_SESSION["uid"] . "\n            AND ttrss_counters_cache.owner_uid = ttrss_feeds.owner_uid\n            AND ttrss_counters_cache.feed_id = id";
    $result = db_query($query);
    while ($line = db_fetch_assoc($result)) {
        $id = $line["id"];
        $count = $line["count"];
        $last_error = htmlspecialchars($line["last_error"]);
        $last_updated = make_local_datetime($line['last_updated'], false);
        $has_img = feed_has_icon($id);
        if (date('Y') - date('Y', strtotime($line['last_updated'])) > 2) {
            $last_updated = '';
        }
        $cv = array("id" => $id, "updated" => $last_updated, "counter" => (int) $count, "has_img" => (int) $has_img);
        if ($last_error) {
            $cv["error"] = $last_error;
        }
        if (get_pref('EXTENDED_FEEDLIST')) {
            $cv["xmsg"] = getFeedArticles($id) . " " . __("total");
        }
        if ($active_feed && $id == $active_feed) {
            $cv["title"] = truncate_string($line["title"], 30);
        }
        array_push($ret_arr, $cv);
    }
    return $ret_arr;
}
示例#4
0
function getFeedUnread($link, $feed, $is_cat = false)
{
    return getFeedArticles($link, $feed, $is_cat, true, $_SESSION["uid"]);
}
示例#5
0
function ccache_update($link, $feed_id, $owner_uid, $is_cat = false, $update_pcat = true)
{
    if (!is_numeric($feed_id)) {
        return;
    }
    if (!$is_cat && $feed_id > 0) {
        $tmp_result = db_query($link, "SELECT owner_uid FROM ttrss_feeds \n\t\t\t\tWHERE id = '{$feed_id}'");
        $owner_uid = db_fetch_result($tmp_result, 0, "owner_uid");
    }
    $prev_unread = ccache_find($link, $feed_id, $owner_uid, $is_cat, true);
    /* When updating a label, all we need to do is recalculate feed counters
     * because labels are not cached */
    if ($feed_id < 0) {
        ccache_update_all($link, $owner_uid);
        return;
    }
    if (!$is_cat) {
        $table = "ttrss_counters_cache";
    } else {
        $table = "ttrss_cat_counters_cache";
    }
    if ($is_cat && $feed_id >= 0) {
        if ($feed_id != 0) {
            $cat_qpart = "cat_id = '{$feed_id}'";
        } else {
            $cat_qpart = "cat_id IS NULL";
        }
        /* Recalculate counters for child feeds */
        $result = db_query($link, "SELECT id FROM ttrss_feeds\n\t\t\t\t\t\tWHERE owner_uid = '{$owner_uid}' AND {$cat_qpart}");
        while ($line = db_fetch_assoc($result)) {
            ccache_update($link, $line["id"], $owner_uid, false, false);
        }
        $result = db_query($link, "SELECT SUM(value) AS sv \n\t\t\t\tFROM ttrss_counters_cache, ttrss_feeds \n\t\t\t\tWHERE id = feed_id AND {$cat_qpart} AND \n\t\t\t\tttrss_feeds.owner_uid = '{$owner_uid}'");
        $unread = (int) db_fetch_result($result, 0, "sv");
    } else {
        $unread = (int) getFeedArticles($link, $feed_id, $is_cat, true, $owner_uid);
    }
    db_query($link, "BEGIN");
    $result = db_query($link, "SELECT feed_id FROM {$table}\n\t\t\tWHERE owner_uid = '{$owner_uid}' AND feed_id = '{$feed_id}' LIMIT 1");
    if (db_num_rows($result) == 1) {
        db_query($link, "UPDATE {$table} SET\n\t\t\t\tvalue = '{$unread}', updated = NOW() WHERE\n\t\t\t\tfeed_id = '{$feed_id}' AND owner_uid = '{$owner_uid}'");
    } else {
        db_query($link, "INSERT INTO {$table}\n\t\t\t\t(feed_id, value, owner_uid, updated) \n\t\t\t\tVALUES \n\t\t\t\t({$feed_id}, {$unread}, {$owner_uid}, NOW())");
    }
    db_query($link, "COMMIT");
    if ($feed_id > 0 && $prev_unread != $unread) {
        if (!$is_cat) {
            /* Update parent category */
            if ($update_pcat) {
                $result = db_query($link, "SELECT cat_id FROM ttrss_feeds\n\t\t\t\t\t\tWHERE owner_uid = '{$owner_uid}' AND id = '{$feed_id}'");
                $cat_id = (int) db_fetch_result($result, 0, "cat_id");
                ccache_update($link, $cat_id, $owner_uid, true);
            }
        }
    } else {
        if ($feed_id < 0) {
            ccache_update_all($link, $owner_uid);
        }
    }
    return $unread;
}
示例#6
0
         generate_syndicated_feed($link, 0, $feed, $is_cat, $limit, $search, $search_mode, $match_on);
     }
     break;
     // rss
 // 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 = '******'");
     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
 // getUnread
 case "digestTest":
     header("Content-Type: text/plain");
     print_r(prepare_headlines_digest($link, $_SESSION["uid"]));
     $print_exec_time = false;
     break;
     // digestTest
 // digestTest