define_default('DAEMON_UPDATE_LOGIN_LIMIT', 30);
define_default('DAEMON_FEED_LIMIT', 500);
define_default('DAEMON_SLEEP_INTERVAL', 120);
+ define_default('_MIN_CACHE_IMAGE_SIZE', 1024);
function update_feedbrowser_cache() {
while ($tline = db_fetch_assoc($tmp_result)) {
if($debug) _debug(" => " . $tline["last_updated"] . ", " . $tline["id"] . " " . $tline["owner_uid"]);
- $rss = update_rss_feed($tline["id"], true, false, $rss);
+ $rss = update_rss_feed($tline["id"], true, false);
_debug_suppress(false);
++$nf;
}
$force_refetch = isset($_REQUEST["force_refetch"]);
- if (file_exists($cache_filename) &&
+ foreach ($pluginhost->get_hooks(PluginHost::HOOK_FETCH_FEED) as $plugin) {
+ $feed_data = $plugin->hook_fetch_feed($feed_data, $fetch_url, $owner_uid, $feed, $last_article_timestamp, $auth_login, $auth_pass);
+ }
+
+ // try cache
+ if (!$feed_data &&
+ file_exists($cache_filename) &&
is_readable($cache_filename) &&
!$auth_login && !$auth_pass &&
filemtime($cache_filename) > time() - 30) {
- _debug("using local cache.", $debug_enabled);
+ _debug("using local cache [$cache_filename].", $debug_enabled);
@$feed_data = file_get_contents($cache_filename);
} else {
_debug("local cache will not be used for this feed", $debug_enabled);
}
- }
-
- if (!$rss) {
-
- foreach ($pluginhost->get_hooks(PluginHost::HOOK_FETCH_FEED) as $plugin) {
- $feed_data = $plugin->hook_fetch_feed($feed_data, $fetch_url, $owner_uid, $feed);
- }
+ // fetch feed from source
if (!$feed_data) {
_debug("fetching [$fetch_url]...", $debug_enabled);
_debug("If-Modified-Since: ".gmdate('D, d M Y H:i:s \G\M\T', $last_article_timestamp), $debug_enabled);
}
}
} */
+
+ // cache vanilla feed data for re-use
+ if ($feed_data && !$auth_pass && !$auth_login && is_writable(CACHE_DIR . "/simplepie")) {
+ $new_rss_hash = sha1($feed_data);
+
+ if ($new_rss_hash != $rss_hash) {
+ _debug("saving $cache_filename", $debug_enabled);
+ @file_put_contents($cache_filename, $feed_data);
+ }
+ }
}
if (!$feed_data) {
if (!$rss->error()) {
- // cache data for later
- if (!$auth_pass && !$auth_login && is_writable(CACHE_DIR . "/simplepie")) {
- $new_rss_hash = sha1($feed_data);
-
- if ($new_rss_hash != $rss_hash && count($rss->get_items()) > 0 ) {
- _debug("saving $cache_filename", $debug_enabled);
- @file_put_contents($cache_filename, $feed_data);
- }
- }
-
// We use local pluginhost here because we need to load different per-user feed plugins
$pluginhost->run_hooks(PluginHost::HOOK_FEED_PARSED, "hook_feed_parsed", $rss);
if (is_array($encs)) {
foreach ($encs as $e) {
$e_item = array(
- $e->link, $e->type, $e->length, $e->title);
+ $e->link, $e->type, $e->length, $e->title, $e->width, $e->height);
array_push($enclosures, $e_item);
}
}
$enc_type = db_escape_string($enc[1]);
$enc_dur = db_escape_string($enc[2]);
$enc_title = db_escape_string($enc[3]);
+ $enc_width = intval($enc[4]);
+ $enc_height = intval($enc[5]);
$result = db_query("SELECT id FROM ttrss_enclosures
WHERE content_url = '$enc_url' AND post_id = '$entry_ref_id'");
if (db_num_rows($result) == 0) {
db_query("INSERT INTO ttrss_enclosures
- (content_url, content_type, title, duration, post_id) VALUES
- ('$enc_url', '$enc_type', '$enc_title', '$enc_dur', '$entry_ref_id')");
+ (content_url, content_type, title, duration, post_id, width, height) VALUES
+ ('$enc_url', '$enc_type', '$enc_title', '$enc_dur', '$entry_ref_id', $enc_width, $enc_height)");
}
}
if (!file_exists($local_filename)) {
$file_content = fetch_file_contents($src);
- if ($file_content && strlen($file_content) > 1024) {
+ if ($file_content && strlen($file_content) > _MIN_CACHE_IMAGE_SIZE) {
file_put_contents($local_filename, $file_content);
}
}