move article filter functions to rssfuncs.php
This commit is contained in:
parent
74467907c5
commit
92c14e9d53
3 changed files with 101 additions and 99 deletions
|
@ -1074,6 +1074,8 @@ class Pref_Feeds extends Handler_Protected {
|
|||
}
|
||||
|
||||
function rescore() {
|
||||
require_once "rssfuncs.php";
|
||||
|
||||
$ids = split(",", db_escape_string($_REQUEST["ids"]));
|
||||
|
||||
foreach ($ids as $id) {
|
||||
|
|
|
@ -465,104 +465,6 @@
|
|||
print "</select>";
|
||||
}
|
||||
|
||||
function get_article_filters($filters, $title, $content, $link, $timestamp, $author, $tags) {
|
||||
$matches = array();
|
||||
|
||||
foreach ($filters as $filter) {
|
||||
$match_any_rule = $filter["match_any_rule"];
|
||||
$filter_match = false;
|
||||
|
||||
foreach ($filter["rules"] as $rule) {
|
||||
$match = false;
|
||||
$reg_exp = $rule["reg_exp"];
|
||||
|
||||
if (!$reg_exp)
|
||||
continue;
|
||||
|
||||
switch ($rule["type"]) {
|
||||
case "title":
|
||||
$match = @preg_match("/$reg_exp/i", $title);
|
||||
break;
|
||||
case "content":
|
||||
$match = @preg_match("/$reg_exp/i", $content);
|
||||
break;
|
||||
case "both":
|
||||
$match = (@preg_match("/$reg_exp/i", $title) || @preg_match("/$reg_exp/i", $title));
|
||||
break;
|
||||
case "link":
|
||||
$match = @preg_match("/$reg_exp/i", $link);
|
||||
break;
|
||||
case "author":
|
||||
$match = @preg_match("/$reg_exp/i", $author);
|
||||
break;
|
||||
case "tag":
|
||||
$tag_string = join(",", $tags);
|
||||
$match = @preg_match("/$reg_exp/i", $tag_string);
|
||||
break;
|
||||
}
|
||||
|
||||
if ($match_any_rule) {
|
||||
if ($match) {
|
||||
$filter_match = true;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
$filter_match = $match;
|
||||
if (!$match) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($filter_match) {
|
||||
foreach ($filter["actions"] AS $action) {
|
||||
array_push($matches, $action);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $matches;
|
||||
}
|
||||
|
||||
function find_article_filter($filters, $filter_name) {
|
||||
foreach ($filters as $f) {
|
||||
if ($f["type"] == $filter_name) {
|
||||
return $f;
|
||||
};
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function find_article_filters($filters, $filter_name) {
|
||||
$results = array();
|
||||
|
||||
foreach ($filters as $f) {
|
||||
if ($f["type"] == $filter_name) {
|
||||
array_push($results, $f);
|
||||
};
|
||||
}
|
||||
return $results;
|
||||
}
|
||||
|
||||
function calculate_article_score($filters) {
|
||||
$score = 0;
|
||||
|
||||
foreach ($filters as $f) {
|
||||
if ($f["type"] == "score") {
|
||||
$score += $f["param"];
|
||||
};
|
||||
}
|
||||
return $score;
|
||||
}
|
||||
|
||||
function assign_article_to_labels($link, $id, $filters, $owner_uid) {
|
||||
foreach ($filters as $f) {
|
||||
if ($f["type"] == "label") {
|
||||
label_add_article($link, $id, $f["param"], $owner_uid);
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
function getmicrotime() {
|
||||
list($usec, $sec) = explode(" ",microtime());
|
||||
return ((float)$usec + (float)$sec);
|
||||
|
|
|
@ -1033,7 +1033,7 @@
|
|||
_debug("update_rss_feed: assigning labels...");
|
||||
}
|
||||
|
||||
assign_article_to_labels($link, $entry_ref_id, $article_filters,
|
||||
assign_article_to_label_filters($link, $entry_ref_id, $article_filters,
|
||||
$owner_uid);
|
||||
|
||||
if ($debug_enabled) {
|
||||
|
@ -1346,4 +1346,102 @@
|
|||
|
||||
return $params;
|
||||
}
|
||||
|
||||
function get_article_filters($filters, $title, $content, $link, $timestamp, $author, $tags) {
|
||||
$matches = array();
|
||||
|
||||
foreach ($filters as $filter) {
|
||||
$match_any_rule = $filter["match_any_rule"];
|
||||
$filter_match = false;
|
||||
|
||||
foreach ($filter["rules"] as $rule) {
|
||||
$match = false;
|
||||
$reg_exp = $rule["reg_exp"];
|
||||
|
||||
if (!$reg_exp)
|
||||
continue;
|
||||
|
||||
switch ($rule["type"]) {
|
||||
case "title":
|
||||
$match = @preg_match("/$reg_exp/i", $title);
|
||||
break;
|
||||
case "content":
|
||||
$match = @preg_match("/$reg_exp/i", $content);
|
||||
break;
|
||||
case "both":
|
||||
$match = (@preg_match("/$reg_exp/i", $title) || @preg_match("/$reg_exp/i", $title));
|
||||
break;
|
||||
case "link":
|
||||
$match = @preg_match("/$reg_exp/i", $link);
|
||||
break;
|
||||
case "author":
|
||||
$match = @preg_match("/$reg_exp/i", $author);
|
||||
break;
|
||||
case "tag":
|
||||
$tag_string = join(",", $tags);
|
||||
$match = @preg_match("/$reg_exp/i", $tag_string);
|
||||
break;
|
||||
}
|
||||
|
||||
if ($match_any_rule) {
|
||||
if ($match) {
|
||||
$filter_match = true;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
$filter_match = $match;
|
||||
if (!$match) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($filter_match) {
|
||||
foreach ($filter["actions"] AS $action) {
|
||||
array_push($matches, $action);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $matches;
|
||||
}
|
||||
|
||||
function find_article_filter($filters, $filter_name) {
|
||||
foreach ($filters as $f) {
|
||||
if ($f["type"] == $filter_name) {
|
||||
return $f;
|
||||
};
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function find_article_filters($filters, $filter_name) {
|
||||
$results = array();
|
||||
|
||||
foreach ($filters as $f) {
|
||||
if ($f["type"] == $filter_name) {
|
||||
array_push($results, $f);
|
||||
};
|
||||
}
|
||||
return $results;
|
||||
}
|
||||
|
||||
function calculate_article_score($filters) {
|
||||
$score = 0;
|
||||
|
||||
foreach ($filters as $f) {
|
||||
if ($f["type"] == "score") {
|
||||
$score += $f["param"];
|
||||
};
|
||||
}
|
||||
return $score;
|
||||
}
|
||||
|
||||
function assign_article_to_label_filters($link, $id, $filters, $owner_uid) {
|
||||
foreach ($filters as $f) {
|
||||
if ($f["type"] == "label") {
|
||||
label_add_article($link, $id, $f["param"], $owner_uid);
|
||||
};
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
Loading…
Reference in a new issue