wrap rssfuncs into rssutils class

This commit is contained in:
Andrew Dolgov 2017-05-05 18:10:07 +03:00
parent 65af3b2cbb
commit e6c886bf66
9 changed files with 117 additions and 132 deletions

View File

@ -412,12 +412,10 @@ class API extends Handler {
} }
function updateFeed() { function updateFeed() {
require_once "include/rssfuncs.php";
$feed_id = (int) $this->dbh->escape_string($_REQUEST["feed_id"]); $feed_id = (int) $this->dbh->escape_string($_REQUEST["feed_id"]);
if (!ini_get("open_basedir")) { if (!ini_get("open_basedir")) {
update_rss_feed($feed_id); RSSUtils::update_rss_feed($feed_id);
} }
$this->wrap(self::STATUS_OK, array("status" => "OK")); $this->wrap(self::STATUS_OK, array("status" => "OK"));
@ -678,8 +676,7 @@ class API extends Handler {
$cache_images = sql_bool_to_bool(db_fetch_result($result, 0, "cache_images")); $cache_images = sql_bool_to_bool(db_fetch_result($result, 0, "cache_images"));
if (!$cache_images && time() - $last_updated > 120) { if (!$cache_images && time() - $last_updated > 120) {
include "rssfuncs.php"; RSSUtils::update_rss_feed($feed_id, true);
update_rss_feed($feed_id, true);
} else { } else {
db_query("UPDATE ttrss_feeds SET last_updated = '1970-01-01', last_update_started = '1970-01-01' db_query("UPDATE ttrss_feeds SET last_updated = '1970-01-01', last_update_started = '1970-01-01'
WHERE id = '$feed_id'"); WHERE id = '$feed_id'");

View File

@ -202,8 +202,7 @@ class Feeds extends Handler_Protected {
$cache_images = sql_bool_to_bool($this->dbh->fetch_result($result, 0, "cache_images")); $cache_images = sql_bool_to_bool($this->dbh->fetch_result($result, 0, "cache_images"));
if (!$cache_images && time() - $last_updated > 120) { if (!$cache_images && time() - $last_updated > 120) {
include "rssfuncs.php"; RSSUtils::update_rss_feed($feed, true);
update_rss_feed($feed, true);
} else { } else {
$this->dbh->query("UPDATE ttrss_feeds SET last_updated = '1970-01-01', last_update_started = '1970-01-01' $this->dbh->query("UPDATE ttrss_feeds SET last_updated = '1970-01-01', last_update_started = '1970-01-01'
WHERE id = '$feed'"); WHERE id = '$feed'");
@ -1222,8 +1221,7 @@ class Feeds extends Handler_Protected {
<pre><?php <pre><?php
if ($do_update) { if ($do_update) {
include "rssfuncs.php"; RSSUtils::update_rss_feed($feed_id, true);
update_rss_feed($feed_id, true);
} }
?></pre> ?></pre>
@ -1491,8 +1489,6 @@ class Feeds extends Handler_Protected {
global $fetch_last_error; global $fetch_last_error;
global $fetch_last_error_content; global $fetch_last_error_content;
require_once "include/rssfuncs.php";
$url = fix_url($url); $url = fix_url($url);
if (!$url || !validate_feed_url($url)) return array("code" => 2); if (!$url || !validate_feed_url($url)) return array("code" => 2);
@ -1550,7 +1546,7 @@ class Feeds extends Handler_Protected {
$feed_id = db_fetch_result($result, 0, "id"); $feed_id = db_fetch_result($result, 0, "id");
if ($feed_id) { if ($feed_id) {
set_basic_feed_info($feed_id); RSSUtils::set_basic_feed_info($feed_id);
} }
return array("code" => 1, "feed_id" => (int) $feed_id); return array("code" => 1, "feed_id" => (int) $feed_id);

View File

@ -1024,9 +1024,7 @@ class Pref_Feeds extends Handler_Protected {
WHERE id = '$feed_id' AND owner_uid = " . $_SESSION["uid"]); WHERE id = '$feed_id' AND owner_uid = " . $_SESSION["uid"]);
if ($reset_basic_info) { if ($reset_basic_info) {
require_once "rssfuncs.php"; RSSUtils::set_basic_feed_info($feed_id);
set_basic_feed_info($feed_id);
} }
PluginHost::getInstance()->run_hooks(PluginHost::HOOK_PREFS_SAVE_FEED, PluginHost::getInstance()->run_hooks(PluginHost::HOOK_PREFS_SAVE_FEED,
@ -1147,8 +1145,6 @@ class Pref_Feeds extends Handler_Protected {
} }
function rescore() { function rescore() {
require_once "rssfuncs.php";
$ids = explode(",", $this->dbh->escape_string($_REQUEST["ids"])); $ids = explode(",", $this->dbh->escape_string($_REQUEST["ids"]));
foreach ($ids as $id) { foreach ($ids as $id) {
@ -1170,11 +1166,11 @@ class Pref_Feeds extends Handler_Protected {
$tags = Article::get_article_tags($line["ref_id"]); $tags = Article::get_article_tags($line["ref_id"]);
$article_filters = get_article_filters($filters, $line['title'], $article_filters = RSSUtils::get_article_filters($filters, $line['title'],
$line['content'], $line['link'], strtotime($line['updated']), $line['content'], $line['link'], strtotime($line['updated']),
$line['author'], $tags); $line['author'], $tags);
$new_score = calculate_article_score($article_filters); $new_score = RSSUtils::calculate_article_score($article_filters);
if (!$scores[$new_score]) $scores[$new_score] = array(); if (!$scores[$new_score]) $scores[$new_score] = array();
@ -1227,11 +1223,11 @@ class Pref_Feeds extends Handler_Protected {
$tags = Article::get_article_tags($line["ref_id"]); $tags = Article::get_article_tags($line["ref_id"]);
$article_filters = get_article_filters($filters, $line['title'], $article_filters = RSSUtils::get_article_filters($filters, $line['title'],
$line['content'], $line['link'], strtotime($line['updated']), $line['content'], $line['link'], strtotime($line['updated']),
$line['author'], $tags); $line['author'], $tags);
$new_score = calculate_article_score($article_filters); $new_score = RSSUtils::calculate_article_score($article_filters);
if (!$scores[$new_score]) $scores[$new_score] = array(); if (!$scores[$new_score]) $scores[$new_score] = array();

View File

@ -44,8 +44,6 @@ class Pref_Filters extends Handler_Protected {
} }
function testFilterDo() { function testFilterDo() {
require_once "include/rssfuncs.php";
$offset = (int) db_escape_string($_REQUEST["offset"]); $offset = (int) db_escape_string($_REQUEST["offset"]);
$limit = (int) db_escape_string($_REQUEST["limit"]); $limit = (int) db_escape_string($_REQUEST["limit"]);
@ -129,7 +127,7 @@ class Pref_Filters extends Handler_Protected {
while ($line = db_fetch_assoc($result)) { while ($line = db_fetch_assoc($result)) {
$rc = get_article_filters(array($filter), $line['title'], $line['content'], $line['link'], $rc = RSSUtils::get_article_filters(array($filter), $line['title'], $line['content'], $line['link'],
$line['author'], explode(",", $line['tag_cache'])); $line['author'], explode(",", $line['tag_cache']));
if (count($rc) > 0) { if (count($rc) > 0) {

View File

@ -538,8 +538,6 @@ class RPC extends Handler_Protected {
$feed_id = -1; $feed_id = -1;
require_once "rssfuncs.php";
$num_updated = 0; $num_updated = 0;
$tstart = time(); $tstart = time();
@ -548,7 +546,7 @@ class RPC extends Handler_Protected {
$feed_id = $line["id"]; $feed_id = $line["id"];
if (time() - $tstart < ini_get("max_execution_time") * 0.7) { if (time() - $tstart < ini_get("max_execution_time") * 0.7) {
update_rss_feed($feed_id, true); RSSUtils::update_rss_feed($feed_id, true);
++$num_updated; ++$num_updated;
} else { } else {
break; break;

View File

@ -1,12 +1,11 @@
<?php <?php
define_default('DAEMON_UPDATE_LOGIN_LIMIT', 30); define_default('DAEMON_UPDATE_LOGIN_LIMIT', 30);
define_default('DAEMON_FEED_LIMIT', 500); define_default('DAEMON_FEED_LIMIT', 500);
define_default('DAEMON_SLEEP_INTERVAL', 120); define_default('DAEMON_SLEEP_INTERVAL', 120);
define_default('_MIN_CACHE_FILE_SIZE', 1024); define_default('_MIN_CACHE_FILE_SIZE', 1024);
// TODO: this needs to be removed from global namespace into classes/RSS.php or something class RSSUtils {
static function calculate_article_hash($article, $pluginhost) {
function calculate_article_hash($article, $pluginhost) {
$tmp = ""; $tmp = "";
foreach ($article as $k => $v) { foreach ($article as $k => $v) {
@ -22,7 +21,7 @@
return sha1(implode(",", $pluginhost->get_plugin_names()) . $tmp); return sha1(implode(",", $pluginhost->get_plugin_names()) . $tmp);
} }
function update_feedbrowser_cache() { static function update_feedbrowser_cache() {
$result = db_query("SELECT feed_url, site_url, title, COUNT(id) AS subscribers $result = db_query("SELECT feed_url, site_url, title, COUNT(id) AS subscribers
FROM ttrss_feeds WHERE feed_url NOT IN (SELECT feed_url FROM ttrss_feeds FROM ttrss_feeds WHERE feed_url NOT IN (SELECT feed_url FROM ttrss_feeds
@ -62,7 +61,7 @@
} }
function update_daemon_common($limit = DAEMON_FEED_LIMIT, $debug = true) { static function update_daemon_common($limit = DAEMON_FEED_LIMIT, $debug = true) {
// Process all other feeds using last_updated and interval parameters // Process all other feeds using last_updated and interval parameters
$schema_version = get_schema_version(); $schema_version = get_schema_version();
@ -196,7 +195,7 @@
array_push($batch_owners, $tline["owner_uid"]); array_push($batch_owners, $tline["owner_uid"]);
$fstarted = microtime(true); $fstarted = microtime(true);
update_rss_feed($tline["id"], true, false); RSSUtils::update_rss_feed($tline["id"], true, false);
_debug_suppress(false); _debug_suppress(false);
_debug(sprintf(" %.4f (sec)", microtime(true) - $fstarted)); _debug(sprintf(" %.4f (sec)", microtime(true) - $fstarted));
@ -214,7 +213,7 @@
foreach ($batch_owners as $owner_uid) { foreach ($batch_owners as $owner_uid) {
_debug("Running housekeeping tasks for user $owner_uid..."); _debug("Running housekeeping tasks for user $owner_uid...");
housekeeping_user($owner_uid); RSSUtils::housekeeping_user($owner_uid);
} }
// Send feed digests by email if needed. // Send feed digests by email if needed.
@ -225,7 +224,7 @@
} }
// this is used when subscribing // this is used when subscribing
function set_basic_feed_info($feed) { static function set_basic_feed_info($feed) {
$feed = db_escape_string($feed); $feed = db_escape_string($feed);
@ -286,9 +285,9 @@
} }
/** /**
* @SuppressWarnings(PHPMD.UnusedFormalParameter) * @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/ */
function update_rss_feed($feed, $no_cache = false) { static function update_rss_feed($feed, $no_cache = false) {
$debug_enabled = defined('DAEMON_EXTENDED_DEBUG') || $_REQUEST['xdebug']; $debug_enabled = defined('DAEMON_EXTENDED_DEBUG') || $_REQUEST['xdebug'];
@ -310,7 +309,7 @@
// this is not optimal currently as it fetches stuff separately TODO: optimize // this is not optimal currently as it fetches stuff separately TODO: optimize
if ($title == "[Unknown]") { if ($title == "[Unknown]") {
_debug("setting basic feed info for $feed..."); _debug("setting basic feed info for $feed...");
set_basic_feed_info($feed); RSSUtils::set_basic_feed_info($feed);
} }
$result = db_query("SELECT id,update_interval,auth_login, $result = db_query("SELECT id,update_interval,auth_login,
@ -494,22 +493,22 @@
_debug("checking favicon...", $debug_enabled); _debug("checking favicon...", $debug_enabled);
check_feed_favicon($site_url, $feed); RSSUtils::check_feed_favicon($site_url, $feed);
$favicon_modified_new = @filemtime($favicon_file); $favicon_modified_new = @filemtime($favicon_file);
if ($favicon_modified_new > $favicon_modified) if ($favicon_modified_new > $favicon_modified)
$favicon_avg_color = ''; $favicon_avg_color = '';
if (file_exists($favicon_file) && function_exists("imagecreatefromstring") && $favicon_avg_color == '') { if (file_exists($favicon_file) && function_exists("imagecreatefromstring") && $favicon_avg_color == '') {
require_once "colors.php"; require_once "colors.php";
db_query("UPDATE ttrss_feeds SET favicon_avg_color = 'fail' WHERE db_query("UPDATE ttrss_feeds SET favicon_avg_color = 'fail' WHERE
id = '$feed'"); id = '$feed'");
$favicon_color = db_escape_string( $favicon_color = db_escape_string(
calculate_avg_color($favicon_file)); calculate_avg_color($favicon_file));
$favicon_colorstring = ",favicon_avg_color = '".$favicon_color."'"; $favicon_colorstring = ",favicon_avg_color = '".$favicon_color."'";
} else if ($favicon_avg_color == 'fail') { } else if ($favicon_avg_color == 'fail') {
_debug("floicon failed on this file, not trying to recalculate avg color", $debug_enabled); _debug("floicon failed on this file, not trying to recalculate avg color", $debug_enabled);
} }
@ -601,7 +600,7 @@
$entry_guid = $item->get_id(); $entry_guid = $item->get_id();
if (!$entry_guid) $entry_guid = $item->get_link(); if (!$entry_guid) $entry_guid = $item->get_link();
if (!$entry_guid) $entry_guid = make_guid_from_title($item->get_title()); if (!$entry_guid) $entry_guid = RSSUtils::make_guid_from_title($item->get_title());
if (!$entry_guid) continue; if (!$entry_guid) continue;
$entry_guid = "$owner_uid,$entry_guid"; $entry_guid = "$owner_uid,$entry_guid";
@ -710,10 +709,10 @@
"fetch_url" => $fetch_url, "fetch_url" => $fetch_url,
"site_url" => $site_url, "site_url" => $site_url,
"cache_images" => $cache_images) "cache_images" => $cache_images)
); );
$entry_plugin_data = ""; $entry_plugin_data = "";
$entry_current_hash = calculate_article_hash($article, $pluginhost); $entry_current_hash = RSSUtils::calculate_article_hash($article, $pluginhost);
_debug("article hash: $entry_current_hash [stored=$entry_stored_hash]", $debug_enabled); _debug("article hash: $entry_current_hash [stored=$entry_stored_hash]", $debug_enabled);
@ -771,7 +770,7 @@
$matched_rules = array(); $matched_rules = array();
$article_filters = get_article_filters($filters, $article["title"], $article_filters = RSSUtils::get_article_filters($filters, $article["title"],
$article["content"], $article["link"], $article["author"], $article["content"], $article["link"], $article["author"],
$article["tags"], $matched_rules); $article["tags"], $matched_rules);
@ -789,7 +788,7 @@
} }
} }
$plugin_filter_names = find_article_filters($article_filters, "plugin"); $plugin_filter_names = RSSUtils::find_article_filters($article_filters, "plugin");
$plugin_filter_actions = $pluginhost->get_filter_actions(); $plugin_filter_actions = $pluginhost->get_filter_actions();
if (count($plugin_filter_names) > 0) { if (count($plugin_filter_names) > 0) {
@ -839,7 +838,7 @@
_debug("force catchup: $entry_force_catchup"); _debug("force catchup: $entry_force_catchup");
if ($cache_images && is_writable(CACHE_DIR . '/images')) if ($cache_images && is_writable(CACHE_DIR . '/images'))
cache_media($entry_content, $site_url, $debug_enabled); RSSUtils::cache_media($entry_content, $site_url, $debug_enabled);
$entry_content = db_escape_string($entry_content, false); $entry_content = db_escape_string($entry_content, false);
@ -911,12 +910,12 @@
id = '$ref_id'"); id = '$ref_id'");
} */ } */
if (find_article_filter($article_filters, "filter")) { if (RSSUtils::find_article_filter($article_filters, "filter")) {
//db_query("COMMIT"); // close transaction in progress //db_query("COMMIT"); // close transaction in progress
continue; continue;
} }
$score = calculate_article_score($article_filters) + $entry_score_modifier; $score = RSSUtils::calculate_article_score($article_filters) + $entry_score_modifier;
_debug("initial score: $score [including plugin modifier: $entry_score_modifier]", $debug_enabled); _debug("initial score: $score [including plugin modifier: $entry_score_modifier]", $debug_enabled);
@ -934,7 +933,7 @@
_debug("user record not found, creating...", $debug_enabled); _debug("user record not found, creating...", $debug_enabled);
if ($score >= -500 && !find_article_filter($article_filters, 'catchup') && !$entry_force_catchup) { if ($score >= -500 && !RSSUtils::find_article_filter($article_filters, 'catchup') && !$entry_force_catchup) {
$unread = 'true'; $unread = 'true';
$last_read_qpart = 'NULL'; $last_read_qpart = 'NULL';
} else { } else {
@ -942,13 +941,13 @@
$last_read_qpart = 'NOW()'; $last_read_qpart = 'NOW()';
} }
if (find_article_filter($article_filters, 'mark') || $score > 1000) { if (RSSUtils::find_article_filter($article_filters, 'mark') || $score > 1000) {
$marked = 'true'; $marked = 'true';
} else { } else {
$marked = 'false'; $marked = 'false';
} }
if (find_article_filter($article_filters, 'publish')) { if (RSSUtils::find_article_filter($article_filters, 'publish')) {
$published = 'true'; $published = 'true';
} else { } else {
$published = 'false'; $published = 'false';
@ -994,7 +993,7 @@
_debug("RID: $entry_ref_id, IID: $entry_int_id", $debug_enabled); _debug("RID: $entry_ref_id, IID: $entry_int_id", $debug_enabled);
if (DB_TYPE == "pgsql") { if (DB_TYPE == "pgsql") {
$tsvector_combined = db_escape_string(mb_substr($entry_title . ' ' . strip_tags(str_replace('<', ' <', $entry_content)), $tsvector_combined = db_escape_string(mb_substr($entry_title . ' ' . strip_tags(str_replace('<', ' <', $entry_content)),
0, 1000000)); 0, 1000000));
$tsvector_qpart = "tsvector_combined = to_tsvector('$feed_language', '$tsvector_combined'),"; $tsvector_qpart = "tsvector_combined = to_tsvector('$feed_language', '$tsvector_combined'),";
@ -1037,7 +1036,7 @@
_debug("assigning labels [filters]...", $debug_enabled); _debug("assigning labels [filters]...", $debug_enabled);
assign_article_to_label_filters($entry_ref_id, $article_filters, RSSUtils::assign_article_to_label_filters($entry_ref_id, $article_filters,
$owner_uid, $article_labels); $owner_uid, $article_labels);
_debug("looking for enclosures...", $debug_enabled); _debug("looking for enclosures...", $debug_enabled);
@ -1058,7 +1057,7 @@
} }
if ($cache_images && is_writable(CACHE_DIR . '/images')) if ($cache_images && is_writable(CACHE_DIR . '/images'))
cache_enclosures($enclosures, $site_url, $debug_enabled); RSSUtils::cache_enclosures($enclosures, $site_url, $debug_enabled);
if ($debug_enabled) { if ($debug_enabled) {
_debug("article enclosures:", $debug_enabled); _debug("article enclosures:", $debug_enabled);
@ -1145,12 +1144,12 @@
WHERE tag_name = '$tag' AND post_int_id = '$entry_int_id' AND WHERE tag_name = '$tag' AND post_int_id = '$entry_int_id' AND
owner_uid = '$owner_uid' LIMIT 1"); owner_uid = '$owner_uid' LIMIT 1");
if ($result && db_num_rows($result) == 0) { if ($result && db_num_rows($result) == 0) {
db_query("INSERT INTO ttrss_tags db_query("INSERT INTO ttrss_tags
(owner_uid,tag_name,post_int_id) (owner_uid,tag_name,post_int_id)
VALUES ('$owner_uid','$tag', '$entry_int_id')"); VALUES ('$owner_uid','$tag', '$entry_int_id')");
} }
array_push($tags_to_cache, $tag); array_push($tags_to_cache, $tag);
} }
@ -1205,7 +1204,7 @@
return true; return true;
} }
function cache_enclosures($enclosures, $site_url, $debug) { static function cache_enclosures($enclosures, $site_url, $debug) {
foreach ($enclosures as $enc) { foreach ($enclosures as $enc) {
if (preg_match("/(image|audio|video)/", $enc[1])) { if (preg_match("/(image|audio|video)/", $enc[1])) {
@ -1229,7 +1228,7 @@
} }
} }
function cache_media($html, $site_url, $debug) { static function cache_media($html, $site_url, $debug) {
libxml_use_internal_errors(true); libxml_use_internal_errors(true);
$charset_hack = '<head> $charset_hack = '<head>
@ -1263,7 +1262,7 @@
} }
} }
function expire_error_log($debug) { static function expire_error_log($debug) {
if ($debug) _debug("Removing old error log entries..."); if ($debug) _debug("Removing old error log entries...");
if (DB_TYPE == "pgsql") { if (DB_TYPE == "pgsql") {
@ -1276,7 +1275,7 @@
} }
function expire_lock_files($debug) { static function expire_lock_files($debug) {
//if ($debug) _debug("Removing old lock files..."); //if ($debug) _debug("Removing old lock files...");
$num_deleted = 0; $num_deleted = 0;
@ -1297,7 +1296,7 @@
if ($debug) _debug("Removed $num_deleted old lock files."); if ($debug) _debug("Removed $num_deleted old lock files.");
} }
function expire_cached_files($debug) { static function expire_cached_files($debug) {
foreach (array("simplepie", "images", "export", "upload") as $dir) { foreach (array("simplepie", "images", "export", "upload") as $dir) {
$cache_dir = CACHE_DIR . "/$dir"; $cache_dir = CACHE_DIR . "/$dir";
@ -1324,13 +1323,13 @@
} }
/** /**
* Source: http://www.php.net/manual/en/function.parse-url.php#104527 * Source: http://www.php.net/manual/en/function.parse-url.php#104527
* Returns the url query as associative array * Returns the url query as associative array
* *
* @param string query * @param string query
* @return array params * @return array params
*/ */
function convertUrlQuery($query) { static function convertUrlQuery($query) {
$queryParts = explode('&', $query); $queryParts = explode('&', $query);
$params = array(); $params = array();
@ -1343,7 +1342,7 @@
return $params; return $params;
} }
function get_article_filters($filters, $title, $content, $link, $author, $tags, &$matched_rules = false) { static function get_article_filters($filters, $title, $content, $link, $author, $tags, &$matched_rules = false) {
$matches = array(); $matches = array();
foreach ($filters as $filter) { foreach ($filters as $filter) {
@ -1360,35 +1359,35 @@
continue; continue;
switch ($rule["type"]) { switch ($rule["type"]) {
case "title": case "title":
$match = @preg_match("/$reg_exp/iu", $title); $match = @preg_match("/$reg_exp/iu", $title);
break; break;
case "content": case "content":
// we don't need to deal with multiline regexps // we don't need to deal with multiline regexps
$content = preg_replace("/[\r\n\t]/", "", $content); $content = preg_replace("/[\r\n\t]/", "", $content);
$match = @preg_match("/$reg_exp/iu", $content); $match = @preg_match("/$reg_exp/iu", $content);
break; break;
case "both": case "both":
// we don't need to deal with multiline regexps // we don't need to deal with multiline regexps
$content = preg_replace("/[\r\n\t]/", "", $content); $content = preg_replace("/[\r\n\t]/", "", $content);
$match = (@preg_match("/$reg_exp/iu", $title) || @preg_match("/$reg_exp/iu", $content)); $match = (@preg_match("/$reg_exp/iu", $title) || @preg_match("/$reg_exp/iu", $content));
break; break;
case "link": case "link":
$match = @preg_match("/$reg_exp/iu", $link); $match = @preg_match("/$reg_exp/iu", $link);
break; break;
case "author": case "author":
$match = @preg_match("/$reg_exp/iu", $author); $match = @preg_match("/$reg_exp/iu", $author);
break; break;
case "tag": case "tag":
foreach ($tags as $tag) { foreach ($tags as $tag) {
if (@preg_match("/$reg_exp/iu", $tag)) { if (@preg_match("/$reg_exp/iu", $tag)) {
$match = true; $match = true;
break; break;
}
} }
} break;
break;
} }
if ($rule_inverse) $match = !$match; if ($rule_inverse) $match = !$match;
@ -1423,7 +1422,7 @@
return $matches; return $matches;
} }
function find_article_filter($filters, $filter_name) { static function find_article_filter($filters, $filter_name) {
foreach ($filters as $f) { foreach ($filters as $f) {
if ($f["type"] == $filter_name) { if ($f["type"] == $filter_name) {
return $f; return $f;
@ -1432,7 +1431,7 @@
return false; return false;
} }
function find_article_filters($filters, $filter_name) { static function find_article_filters($filters, $filter_name) {
$results = array(); $results = array();
foreach ($filters as $f) { foreach ($filters as $f) {
@ -1443,7 +1442,7 @@
return $results; return $results;
} }
function calculate_article_score($filters) { static function calculate_article_score($filters) {
$score = 0; $score = 0;
foreach ($filters as $f) { foreach ($filters as $f) {
@ -1454,7 +1453,7 @@
return $score; return $score;
} }
function labels_contains_caption($labels, $caption) { static function labels_contains_caption($labels, $caption) {
foreach ($labels as $label) { foreach ($labels as $label) {
if ($label[1] == $caption) { if ($label[1] == $caption) {
return true; return true;
@ -1464,22 +1463,22 @@
return false; return false;
} }
function assign_article_to_label_filters($id, $filters, $owner_uid, $article_labels) { static function assign_article_to_label_filters($id, $filters, $owner_uid, $article_labels) {
foreach ($filters as $f) { foreach ($filters as $f) {
if ($f["type"] == "label") { if ($f["type"] == "label") {
if (!labels_contains_caption($article_labels, $f["param"])) { if (!RSSUtils::labels_contains_caption($article_labels, $f["param"])) {
Labels::add_article($id, $f["param"], $owner_uid); Labels::add_article($id, $f["param"], $owner_uid);
} }
} }
} }
} }
function make_guid_from_title($title) { static function make_guid_from_title($title) {
return preg_replace("/[ \"\',.:;]/", "-", return preg_replace("/[ \"\',.:;]/", "-",
mb_strtolower(strip_tags($title), 'utf-8')); mb_strtolower(strip_tags($title), 'utf-8'));
} }
function cleanup_counters_cache($debug) { static function cleanup_counters_cache($debug) {
$result = db_query("DELETE FROM ttrss_counters_cache $result = db_query("DELETE FROM ttrss_counters_cache
WHERE feed_id > 0 AND WHERE feed_id > 0 AND
(SELECT COUNT(id) FROM ttrss_feeds WHERE (SELECT COUNT(id) FROM ttrss_feeds WHERE
@ -1497,7 +1496,7 @@
if ($debug) _debug("Removed $frows (feeds) $crows (cats) orphaned counter cache entries."); if ($debug) _debug("Removed $frows (feeds) $crows (cats) orphaned counter cache entries.");
} }
function housekeeping_user($owner_uid) { static function housekeeping_user($owner_uid) {
$tmph = new PluginHost(); $tmph = new PluginHost();
load_user_plugins($owner_uid, $tmph); load_user_plugins($owner_uid, $tmph);
@ -1505,16 +1504,16 @@
$tmph->run_hooks(PluginHost::HOOK_HOUSE_KEEPING, "hook_house_keeping", ""); $tmph->run_hooks(PluginHost::HOOK_HOUSE_KEEPING, "hook_house_keeping", "");
} }
function housekeeping_common($debug) { static function housekeeping_common($debug) {
expire_cached_files($debug); RSSUtils::expire_cached_files($debug);
expire_lock_files($debug); RSSUtils::expire_lock_files($debug);
expire_error_log($debug); RSSUtils::expire_error_log($debug);
$count = update_feedbrowser_cache(); $count = RSSUtils::update_feedbrowser_cache();
_debug("Feedbrowser updated, $count feeds processed."); _debug("Feedbrowser updated, $count feeds processed.");
Article::purge_orphans( true); Article::purge_orphans( true);
cleanup_counters_cache($debug); RSSUtils::cleanup_counters_cache($debug);
//$rc = cleanup_tags( 14, 50000); //$rc = cleanup_tags( 14, 50000);
//_debug("Cleaned $rc cached tags."); //_debug("Cleaned $rc cached tags.");
@ -1522,8 +1521,8 @@
PluginHost::getInstance()->run_hooks(PluginHost::HOOK_HOUSE_KEEPING, "hook_house_keeping", ""); PluginHost::getInstance()->run_hooks(PluginHost::HOOK_HOUSE_KEEPING, "hook_house_keeping", "");
} }
function check_feed_favicon($site_url, $feed) { static function check_feed_favicon($site_url, $feed) {
# print "FAVICON [$site_url]: $favicon_url\n"; # print "FAVICON [$site_url]: $favicon_url\n";
$icon_file = ICONS_DIR . "/$feed.ico"; $icon_file = ICONS_DIR . "/$feed.ico";
@ -1572,3 +1571,7 @@
return $icon_file; return $icon_file;
} }
} }
}

View File

@ -40,8 +40,7 @@ class Auto_Assign_Labels extends Plugin {
if ($caption && preg_match("/\b$caption\b/i", "$tags_str " . strip_tags($article["content"]) . " " . $article["title"])) { if ($caption && preg_match("/\b$caption\b/i", "$tags_str " . strip_tags($article["content"]) . " " . $article["title"])) {
# defined in rssfuncs.php if (!RSSUtils::labels_contains_caption($article["labels"], $caption)) {
if (!labels_contains_caption($article["labels"], $caption)) {
array_push($article["labels"], $label); array_push($article["labels"], $label);
} }
} }

View File

@ -9,7 +9,6 @@
require_once "autoload.php"; require_once "autoload.php";
require_once "functions.php"; require_once "functions.php";
require_once "rssfuncs.php";
require_once "config.php"; require_once "config.php";
require_once "sanity_check.php"; require_once "sanity_check.php";
require_once "db.php"; require_once "db.php";
@ -165,14 +164,14 @@
} }
if (isset($options["feeds"])) { if (isset($options["feeds"])) {
update_daemon_common(); RSSUtils::update_daemon_common();
housekeeping_common(true); RSSUtils::housekeeping_common(true);
PluginHost::getInstance()->run_hooks(PluginHost::HOOK_UPDATE_TASK, "hook_update_task", $op); PluginHost::getInstance()->run_hooks(PluginHost::HOOK_UPDATE_TASK, "hook_update_task", $op);
} }
if (isset($options["feedbrowser"])) { if (isset($options["feedbrowser"])) {
$count = update_feedbrowser_cache(); $count = RSSUtils::update_feedbrowser_cache();
print "Finished, $count feeds processed.\n"; print "Finished, $count feeds processed.\n";
} }
@ -192,10 +191,10 @@
_debug("warning: unable to create stampfile\n"); _debug("warning: unable to create stampfile\n");
} }
update_daemon_common(isset($options["pidlock"]) ? 50 : DAEMON_FEED_LIMIT); RSSUtils::update_daemon_common(isset($options["pidlock"]) ? 50 : DAEMON_FEED_LIMIT);
if (!isset($options["pidlock"]) || $options["task"] == 0) if (!isset($options["pidlock"]) || $options["task"] == 0)
housekeeping_common(true); RSSUtils::housekeeping_common(true);
PluginHost::getInstance()->run_hooks(PluginHost::HOOK_UPDATE_TASK, "hook_update_task", $op); PluginHost::getInstance()->run_hooks(PluginHost::HOOK_UPDATE_TASK, "hook_update_task", $op);
} }
@ -401,7 +400,7 @@
$_REQUEST['xdebug'] = 1; $_REQUEST['xdebug'] = 1;
$rc = update_rss_feed($feed) != false ? 0 : 1; $rc = RSSUtils::update_rss_feed($feed) != false ? 0 : 1;
exit($rc); exit($rc);
} }

View File

@ -12,7 +12,6 @@
require_once "autoload.php"; require_once "autoload.php";
require_once "functions.php"; require_once "functions.php";
require_once "config.php"; require_once "config.php";
require_once "rssfuncs.php";
// defaults // defaults
define_default('PURGE_INTERVAL', 3600); // seconds define_default('PURGE_INTERVAL', 3600); // seconds