implement SIMPLEPIE_CACHE_DIR

This commit is contained in:
Andrew Dolgov 2007-08-25 17:24:18 +01:00
parent a0a63217fc
commit c7d57b6690
3 changed files with 38 additions and 0 deletions

View File

@ -163,6 +163,9 @@
// to any feeds using HTTP Digest authentication and Magpie XML parsing // to any feeds using HTTP Digest authentication and Magpie XML parsing
// errors are bothering you too much, you can try enabling SimplePie. // errors are bothering you too much, you can try enabling SimplePie.
define('SIMPLEPIE_CACHE_DIR', '/var/tmp/simplepie-ttrss-cache');
// Cache directory for RSS feeds when using SimplePie
define('COUNTERS_MAX_AGE', 365); define('COUNTERS_MAX_AGE', 365);
// Hard limit for unread counters calculation. Try tweaking this // Hard limit for unread counters calculation. Try tweaking this
// parameter to speed up tt-rss when having a huge number of articles // parameter to speed up tt-rss when having a huge number of articles

View File

@ -207,6 +207,25 @@
(SELECT COUNT(int_id) FROM ttrss_user_entries WHERE ref_id = id) = 0"); (SELECT COUNT(int_id) FROM ttrss_user_entries WHERE ref_id = id) = 0");
} }
function get_feed_update_interval($link, $feed_id) {
$result = db_query($link, "SELECT owner_uid, update_interval FROM
ttrss_feeds WHERE id = '$feed_id'");
if (db_num_rows($result) == 1) {
$update_interval = db_fetch_result($result, 0, "update_interval");
$owner_uid = db_fetch_result($result, 0, "owner_uid");
if ($update_interval != 0) {
return $update_interval;
} else {
return get_pref($link, 'DEFAULT_UPDATE_INTERVAL', $owner_uid, false);
}
} else {
return -1;
}
}
function update_all_feeds($link, $fetch, $user_id = false, $force_daemon = false) { function update_all_feeds($link, $fetch, $user_id = false, $force_daemon = false) {
if (WEB_DEMO_MODE) return; if (WEB_DEMO_MODE) return;
@ -441,11 +460,26 @@
if (!ENABLE_SIMPLEPIE) { if (!ENABLE_SIMPLEPIE) {
$rss = fetch_rss($fetch_url); $rss = fetch_rss($fetch_url);
} else { } else {
if (!is_dir(SIMPLEPIE_CACHE_DIR)) {
mkdir(SIMPLEPIE_CACHE_DIR);
}
$rss = new SimplePie(); $rss = new SimplePie();
$rss->set_useragent(SIMPLEPIE_USERAGENT . MAGPIE_USER_AGENT_EXT); $rss->set_useragent(SIMPLEPIE_USERAGENT . MAGPIE_USER_AGENT_EXT);
$rss->set_timeout(MAGPIE_FETCH_TIME_OUT); $rss->set_timeout(MAGPIE_FETCH_TIME_OUT);
$rss->set_feed_url($fetch_url); $rss->set_feed_url($fetch_url);
$rss->set_output_encoding('UTF-8'); $rss->set_output_encoding('UTF-8');
if (defined('DAEMON_EXTENDED_DEBUG') || $_GET['xdebug']) {
_debug("feed update interval (sec): " .
get_feed_update_interval($link, $feed)*60);
}
if (is_dir(SIMPLEPIE_CACHE_DIR)) {
$rss->set_cache_location(SIMPLEPIE_CACHE_DIR);
$rss->set_cache_duration(get_feed_update_interval($link, $feed) * 60);
}
$rss->init(); $rss->init();
} }

View File

@ -9,6 +9,7 @@
declare(ticks = 1); declare(ticks = 1);
define('MAGPIE_CACHE_DIR', '/var/tmp/magpie-ttrss-cache-daemon'); define('MAGPIE_CACHE_DIR', '/var/tmp/magpie-ttrss-cache-daemon');
define('SIMPLEPIE_CACHE_DIR', '/var/tmp/simplepie-ttrss-cache-daemon');
define('DISABLE_SESSIONS', true); define('DISABLE_SESSIONS', true);
require_once "version.php"; require_once "version.php";