diff --git a/application/modules/default/models/Spam.php b/application/modules/default/models/Spam.php index dc2ff7e32..aaa5994b7 100644 --- a/application/modules/default/models/Spam.php +++ b/application/modules/default/models/Spam.php @@ -1,71 +1,71 @@ . * * Created: 31.05.2017 */ class Default_Model_Spam { const SPAM_THRESHOLD = 1; /** * naive approach for spam detection * @todo: define a list of stop words * * @param array $project_data * * @return bool */ public static function hasSpamMarkers($project_data) { $sql = "SELECT spam_key_word FROM spam_keywords WHERE spam_key_is_active = 1 AND spam_key_is_deleted = 0"; $keywords = Zend_Db_Table::getDefaultAdapter()->fetchCol($sql); $needles = implode('|', $keywords); $haystack = implode(" ", array($project_data['title'], $project_data['description'])); - if(preg_match("/\b({$needles})\b/i", $haystack)){ + if(preg_match("/\b({$needles})s?\b/i", $haystack)){ return true; } return false; } public function fetchSpamCandidate() { $sql = " SELECT * FROM `stat_projects` WHERE `stat_projects`.`amount_reports` >= :threshold AND `stat_projects`.`status` = 100 ORDER BY `stat_projects`.`changed_at` DESC, `stat_projects`.`created_at` DESC, `stat_projects`.`amount_reports` DESC "; $result = Zend_Db_Table::getDefaultAdapter()->query($sql, array('threshold' => self::SPAM_THRESHOLD)); if ($result->rowCount() > 0) { return $result->fetchAll(); } else { return array(); } } } \ No newline at end of file