From 87764a50cf08f33008a0f83d91b4d807643db67c Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Fri, 23 Nov 2012 13:22:34 +0400 Subject: implement ttrss_feeds.cache_content --- classes/api.php | 4 ++-- classes/feeds.php | 13 +++++++++++-- classes/pref/feeds.php | 24 +++++++++++++++++++++--- 3 files changed, 34 insertions(+), 7 deletions(-) (limited to 'classes') diff --git a/classes/api.php b/classes/api.php index 15576c7c0..e3dce0c17 100644 --- a/classes/api.php +++ b/classes/api.php @@ -280,7 +280,7 @@ class API extends Handler { $article_id = join(",", array_filter(explode(",", db_escape_string($_REQUEST["article_id"])), is_numeric)); - $query = "SELECT id,title,link,content,feed_id,comments,int_id, + $query = "SELECT id,title,link,content,cached_content,feed_id,comments,int_id, marked,unread,published, ".SUBSTRING_FOR_DATE."(updated,1,16) as updated, author @@ -309,7 +309,7 @@ class API extends Handler { "comments" => $line["comments"], "author" => $line["author"], "updated" => strtotime($line["updated"]), - "content" => $line["content"], + "content" => $line["cached_content"] != "" ? $line["cached_content"] : $line["content"], "feed_id" => $line["feed_id"], "attachments" => $attachments ); diff --git a/classes/feeds.php b/classes/feeds.php index 9a74130b0..49adf3879 100644 --- a/classes/feeds.php +++ b/classes/feeds.php @@ -158,16 +158,20 @@ class Feeds extends Handler_Protected { // Update the feed if required with some basic flood control $result = db_query($this->link, - "SELECT cache_images,".SUBSTRING_FOR_DATE."(last_updated,1,19) AS last_updated + "SELECT cache_images,cache_content,".SUBSTRING_FOR_DATE."(last_updated,1,19) AS last_updated FROM ttrss_feeds WHERE id = '$feed'"); if (db_num_rows($result) != 0) { $last_updated = strtotime(db_fetch_result($result, 0, "last_updated")); $cache_images = sql_bool_to_bool(db_fetch_result($result, 0, "cache_images")); + $cache_content = sql_bool_to_bool(db_fetch_result($result, 0, "cache_content")); - if (!$cache_images && time() - $last_updated > 120 || isset($_REQUEST['DevForceUpdate'])) { + if (!$cache_images && !$cache_content && time() - $last_updated > 120 || isset($_REQUEST['DevForceUpdate'])) { include "rssfuncs.php"; update_rss_feed($this->link, $feed, true, true); + } else { + db_query($this->link, "UPDATE ttrss_feeds SET last_updated = '1970-01-01', last_update_started = '1970-01-01' + WHERE id = '$feed'"); } } } @@ -234,6 +238,7 @@ class Feeds extends Handler_Protected { $feed_title = $qfh_ret[1]; $feed_site_url = $qfh_ret[2]; $last_error = $qfh_ret[3]; + $cache_content = true; $vgroup_last_feed = $vgr_last_feed; @@ -627,6 +632,10 @@ class Feeds extends Handler_Protected { $feed_site_url = $line["site_url"]; + if ($cache_content && $line["cached_content"] != "") { + $line["content_preview"] =& $line["cached_content"]; + } + $article_content = sanitize($this->link, $line["content_preview"], false, false, $feed_site_url); diff --git a/classes/pref/feeds.php b/classes/pref/feeds.php index 4de3576c8..c51174b07 100644 --- a/classes/pref/feeds.php +++ b/classes/pref/feeds.php @@ -653,6 +653,19 @@ class Pref_Feeds extends Handler_Protected { $checked> "; + $cache_content = sql_bool_to_bool(db_fetch_result($result, 0, "cache_content")); + + if ($cache_content) { + $checked = "checked=\"1\""; + } else { + $checked = ""; + } + + print "
 "; + $mark_unread_on_update = sql_bool_to_bool(db_fetch_result($result, 0, "mark_unread_on_update")); if ($mark_unread_on_update) { @@ -914,6 +927,8 @@ class Pref_Feeds extends Handler_Protected { db_escape_string($_POST["include_in_digest"])); $cache_images = checkbox_to_sql_bool( db_escape_string($_POST["cache_images"])); + $cache_content = checkbox_to_sql_bool( + db_escape_string($_POST["cache_content"])); $update_method = (int) db_escape_string($_POST["update_method"]); $always_display_enclosures = checkbox_to_sql_bool( @@ -938,8 +953,6 @@ class Pref_Feeds extends Handler_Protected { $category_qpart_nocomma = ""; } - $cache_images_qpart = "cache_images = $cache_images,"; - if (!$batch) { $result = db_query($this->link, "UPDATE ttrss_feeds SET @@ -951,7 +964,8 @@ class Pref_Feeds extends Handler_Protected { auth_pass = '$auth_pass', private = $private, rtl_content = $rtl_content, - $cache_images_qpart + cache_images = $cache_images, + cache_content = $cache_content, include_in_digest = $include_in_digest, always_display_enclosures = $always_display_enclosures, mark_unread_on_update = $mark_unread_on_update, @@ -1023,6 +1037,10 @@ class Pref_Feeds extends Handler_Protected { $qpart = "cache_images = $cache_images"; break; + case "cache_content": + $qpart = "cache_content = $cache_content"; + break; + case "rtl_content": $qpart = "rtl_content = $rtl_content"; break; -- cgit v1.2.3-54-g00ecf