From 1b916fe36b699d54ee8faa0fb6376f7d55f7fcf0 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 20 Oct 2011 10:42:54 -0400 Subject: [PATCH 1/2] remove unused Popularity class; use PopularNoticeStream instead --- lib/popularity.php | 92 ---------------------------------------------- 1 file changed, 92 deletions(-) delete mode 100644 lib/popularity.php diff --git a/lib/popularity.php b/lib/popularity.php deleted file mode 100644 index 7ab259a391..0000000000 --- a/lib/popularity.php +++ /dev/null @@ -1,92 +0,0 @@ -. - * - * @category Widget - * @package StatusNet - * @author Evan Prodromou - * @author Brion Vibber - * @copyright 2010 StatusNet, Inc. - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://status.net/ - */ - -if (!defined('STATUSNET') && !defined('LACONICA')) { - exit(1); -} - -/** - * Wrapper for fetching notices ranked according to popularity, - * broken out so it can be called from multiple actions with - * less code duplication. - */ -class Popularity -{ - public $limit = NOTICES_PER_PAGE; - public $offset = 0; - public $tag = false; - public $expiry = 600; - - /** - * Run a cached query to fetch notices, whee! - * - * @return Notice - */ - function getNotices() - { - // @fixme there should be a common func for this - if (common_config('db', 'type') == 'pgsql') { - if (!empty($this->tag)) { - $tag = pg_escape_string($this->tag); - } - } else { - if (!empty($this->tag)) { - $tag = mysql_escape_string($this->tag); - } - } - $weightexpr = common_sql_weight('fave.modified', common_config('popular', 'dropoff')); - $cutoff = sprintf("fave.modified > '%s'", - common_sql_date(time() - common_config('popular', 'cutoff'))); - $qry = "SELECT notice.*, $weightexpr as weight "; - if(isset($tag)) { - $qry .= 'FROM notice_tag, notice JOIN fave ON notice.id = fave.notice_id ' . - "WHERE $cutoff and notice.id = notice_tag.notice_id and '$tag' = notice_tag.tag"; - } else { - $qry .= 'FROM notice JOIN fave ON notice.id = fave.notice_id ' . - "WHERE $cutoff"; - } - $qry .= ' GROUP BY notice.id,notice.profile_id,notice.content,notice.uri,' . - 'notice.rendered,notice.url,notice.created,notice.modified,' . - 'notice.reply_to,notice.is_local,notice.source,notice.conversation, ' . - 'notice.lat,notice.lon,location_id,location_ns,notice.repeat_of'; - $qry .= ' HAVING \'silenced\' NOT IN (SELECT role FROM profile_role WHERE profile_id=notice.profile_id)'; - $qry .= ' ORDER BY weight DESC'; - - $offset = $this->offset; - $limit = $this->limit + 1; - - $qry .= ' LIMIT ' . $limit . ' OFFSET ' . $offset; - - $notice = Memcached_DataObject::cachedQuery('Notice', - $qry, - 1200); - return $notice; - } -} \ No newline at end of file From b8079549cedbe0aa1f60e48c77ec1fc195731609 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 20 Oct 2011 10:54:33 -0400 Subject: [PATCH 2/2] Include the current profile in popular notice section for all --- actions/all.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/actions/all.php b/actions/all.php index 6e6dae5d16..b9f9bdd503 100644 --- a/actions/all.php +++ b/actions/all.php @@ -223,7 +223,7 @@ class AllAction extends ProfileAction // XXX: make this a little more convenient if (!common_config('performance', 'high')) { - $pop = new PopularNoticeSection($this); + $pop = new PopularNoticeSection($this, Profile::current()); $pop->show(); $pop = new InboxTagCloudSection($this, $this->user); $pop->show();