From 77ab07920fa14f39bc21c6a48726072f80ccbde0 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Fri, 2 Mar 2012 10:20:01 -0600 Subject: [PATCH] more upgrade-friendly scores --- ActivitySpamPlugin.php | 21 +++++++++----- Spam_score.php | 64 ++++++++++++++++++++++++------------------ 2 files changed, 50 insertions(+), 35 deletions(-) diff --git a/ActivitySpamPlugin.php b/ActivitySpamPlugin.php index 5fe5360fde..62cfbda22f 100644 --- a/ActivitySpamPlugin.php +++ b/ActivitySpamPlugin.php @@ -1,7 +1,7 @@ - * @copyright 2011 StatusNet, Inc. + * @copyright 2011,2012 StatusNet, Inc. * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 * @link http://status.net/ */ @@ -40,7 +40,7 @@ if (!defined('STATUSNET')) { * @category Spam * @package StatusNet * @author Evan Prodromou - * @copyright 2011 StatusNet, Inc. + * @copyright 2011,2012 StatusNet, Inc. * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 * @link http://status.net/ */ @@ -107,7 +107,11 @@ class ActivitySpamPlugin extends Plugin } /** - * This should probably be done in its own queue handler + * When a notice is saved, check its spam score + * + * @param Notice $notice Notice that was just saved + * + * @return boolean hook value; true means continue processing, false means stop. */ function onEndNoticeSave($notice) @@ -135,9 +139,12 @@ class ActivitySpamPlugin extends Plugin $score = new Spam_score(); - $score->notice_id = $notice->id; - $score->score = $result->probability; - $score->created = common_sql_now(); + $score->notice_id = $notice->id; + $score->score = $result->probability; + $score->is_spam = $result->isSpam; + $score->scaled = (int) ($result->probability * Spam_score::MAX_SCALED); + $score->created = common_sql_now(); + $score->notice_created = $notice->created; $score->insert(); diff --git a/Spam_score.php b/Spam_score.php index fde2876d0c..440edb6b7f 100644 --- a/Spam_score.php +++ b/Spam_score.php @@ -1,32 +1,32 @@ . - * - * @category Spam - * @package StatusNet - * @author Evan Prodromou - * @copyright 2011 StatusNet, Inc. - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 - * @link http://status.net/ - */ + /** + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2011, StatusNet, Inc. + * + * Score of a notice by activity spam service + * + * PHP version 5 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + * @category Spam + * @package StatusNet + * @author Evan Prodromou + * @copyright 2011 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ if (!defined('STATUSNET')) { exit(1); @@ -46,6 +46,7 @@ if (!defined('STATUSNET')) { class Spam_score extends Managed_DataObject { + const MAX_SCALED = 1000000; public $__table = 'spam_score'; // table name public $notice_id; // int @@ -80,9 +81,15 @@ class Spam_score extends Managed_DataObject 'score' => array('type' => 'double', 'not null' => true, 'description' => 'score for the notice (0.0, 1.0)'), + 'scaled' => array('type' => 'int', + 'description' => 'scaled score for the notice (0, 1000000)'), + 'is_spam' => array('type' => 'tinyint', + 'description' => 'flag for spamosity'), 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + 'notice_created' => array('type' => 'datetime', + 'description' => 'date the notice was created'), ), 'primary key' => array('notice_id'), 'foreign keys' => array( @@ -90,6 +97,7 @@ class Spam_score extends Managed_DataObject ), 'indexes' => array( 'spam_score_created_idx' => array('created'), + 'spam_score_scaled_idx' => array('scaled'), ), ); } -- 2.39.5