) OR (
ttrss_feeds.update_interval > 0
AND ttrss_feeds.last_updated < NOW() - CAST((ttrss_feeds.update_interval || ' minutes') AS INTERVAL)
- ) OR ttrss_feeds.last_updated IS NULL)";
+ ) OR ttrss_feeds.last_updated IS NULL
+ OR last_updated = '1970-01-01 00:00:00')";
} else {
$update_limit_qpart = "AND ((
ttrss_feeds.update_interval = 0
) OR (
ttrss_feeds.update_interval > 0
AND ttrss_feeds.last_updated < DATE_SUB(NOW(), INTERVAL ttrss_feeds.update_interval MINUTE)
- ) OR ttrss_feeds.last_updated IS NULL)";
+ ) OR ttrss_feeds.last_updated IS NULL
+ OR last_updated = '1970-01-01 00:00:00')";
}
// Test if feed is currently being updated by another process.
}
$result = db_query($link, "SELECT id,update_interval,auth_login,
- auth_pass,cache_images,update_method
+ auth_pass,cache_images,update_method,last_updated
FROM ttrss_feeds WHERE id = '$feed' AND $updstart_thresh_qpart");
} else {
} else {
+ // Ignore cache if new feed or manual update.
+ $cache_age = (is_null($last_updated) || $last_updated == '1970-01-01 00:00:00') ?
+ -1 : get_feed_update_interval($link, $feed) * 60;
+
if ($update_method == 3) {
$rss = fetch_twitter_rss($link, $fetch_url, $owner_uid);
} else if ($update_method == 1) {
- define('MAGPIE_CACHE_AGE', get_feed_update_interval($link, $feed) * 60);
+ define('MAGPIE_CACHE_AGE', $cache_age);
define('MAGPIE_CACHE_ON', !$no_cache);
define('MAGPIE_FETCH_TIME_OUT', 60);
define('MAGPIE_CACHE_DIR', CACHE_DIR . "/magpie");
if (!$no_cache) {
$rss->set_cache_location($simplepie_cache_dir);
- $rss->set_cache_duration(get_feed_update_interval($link, $feed) * 60);
+ $rss->set_cache_duration($cache_age);
}
$rss->init();
// 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");
_debug("update_rss_feed: checking favicon...");
}
- check_feed_favicon($site_url, $feed, $link);
+ if ($favicon_needs_check) {
+ check_feed_favicon($site_url, $feed, $link);
+
+ db_query($link, "UPDATE ttrss_feeds SET favicon_last_checked = NOW()
+ WHERE id = '$feed'");
+ }
if (!$registered_title || $registered_title == "[Unknown]") {
$entry_content = $item["content:escaped"];
if (!$entry_content) $entry_content = $item["content:encoded"];
- if (!$entry_content) $entry_content = $item["content"]["encoded"];
+ if (!$entry_content && is_array($entry_content)) $entry_content = $item["content"]["encoded"];
if (!$entry_content) $entry_content = $item["content"];
if (is_array($entry_content)) $entry_content = $entry_content[0];
}
function expire_cached_files($debug) {
- foreach (array("magpie", "simplepie", "images") as $dir) {
+ foreach (array("magpie", "simplepie", "images", "export") as $dir) {
$cache_dir = CACHE_DIR . "/$dir";
if ($debug) _debug("Expiring $cache_dir");