1
0
mirror of https://git.tt-rss.org/git/tt-rss.git synced 2025-12-21 18:21:30 +00:00

move article filter functions to rssfuncs.php

This commit is contained in:
Andrew Dolgov
2012-10-30 12:11:46 +04:00
parent 74467907c5
commit 92c14e9d53
3 changed files with 101 additions and 99 deletions

View File

@@ -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);