summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2012-05-24 16:20:03 +0400
committerAndrew Dolgov <[email protected]>2012-05-24 16:20:03 +0400
commit382268c6c9f778e7b435ee69c56a9407d9e8dcc2 (patch)
tree8c1f1d2b169fc5b37de6fca768c3299d0a02eedb /include
parent0e63fc49ab31db2ff61cae1b56c33431c9848c37 (diff)
rate-limit requests for favicons when not present to conserve traffic (refs #457)
Diffstat (limited to 'include')
-rw-r--r--include/rssfuncs.php18
-rw-r--r--include/sanity_check.php2
2 files changed, 16 insertions, 4 deletions
diff --git a/include/rssfuncs.php b/include/rssfuncs.php
index 84a24e2f0..9c01c9056 100644
--- a/include/rssfuncs.php
+++ b/include/rssfuncs.php
@@ -414,12 +414,22 @@
// db_query($link, "BEGIN");
- $result = db_query($link, "SELECT title,icon_url,site_url,owner_uid
+ if (DB_TYPE == "pgsql") {
+ $favicon_interval_qpart = "favicon_last_checked < NOW() - INTERVAL '12 hour'";
+ } else {
+ $favicon_interval_qpart = "favicon_last_checked < DATE_SUB(NOW(), INTERVAL 12 HOUR)";
+ }
+
+ $result = db_query($link, "SELECT title,icon_url,site_url,owner_uid,
+ (favicon_last_checked IS NULL OR $favicon_interval_qpart) AS
+ favicon_needs_check
FROM ttrss_feeds WHERE id = '$feed'");
$registered_title = db_fetch_result($result, 0, "title");
$orig_icon_url = db_fetch_result($result, 0, "icon_url");
$orig_site_url = db_fetch_result($result, 0, "site_url");
+ $favicon_needs_check = sql_bool_to_bool(db_fetch_result($result, 0,
+ "favicon_needs_check"));
$owner_uid = db_fetch_result($result, 0, "owner_uid");
@@ -441,7 +451,7 @@
_debug("update_rss_feed: checking favicon...");
}
- check_feed_favicon($site_url, $feed, $link);
+ if ($favicon_needs_check) check_feed_favicon($site_url, $feed, $link);
if (!$registered_title || $registered_title == "[Unknown]") {
@@ -1285,7 +1295,9 @@
purge_feed($link, $feed, 0, $debug_enabled);
db_query($link, "UPDATE ttrss_feeds
- SET last_updated = NOW(), last_error = '' WHERE id = '$feed'");
+ SET last_updated = NOW(),
+ favicon_last_checked = NOW(),
+ last_error = '' WHERE id = '$feed'");
// db_query($link, "COMMIT");
diff --git a/include/sanity_check.php b/include/sanity_check.php
index 26d699be7..11da85921 100644
--- a/include/sanity_check.php
+++ b/include/sanity_check.php
@@ -10,7 +10,7 @@
} else {
define('EXPECTED_CONFIG_VERSION', 25);
- define('SCHEMA_VERSION', 91);
+ define('SCHEMA_VERSION', 92);
require_once "config.php";
require_once "sanity_config.php";