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"; } }
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; }
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; }
function getFeedUnread($link, $feed, $is_cat = false) { return getFeedArticles($link, $feed, $is_cat, true, $_SESSION["uid"]); }
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; }
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