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