summaryrefslogtreecommitdiff
path: root/classes
diff options
context:
space:
mode:
authorEvan Prodromou <evan@prodromou.name>2008-11-20 13:37:22 -0500
committerEvan Prodromou <evan@prodromou.name>2008-11-20 13:37:22 -0500
commit35407614bb6287e96f5c08194eb0fa7ea1b71339 (patch)
treeee6aa6819b0ffdd9f64a093133aa614c9b728742 /classes
parent7877e86506877c92165602d322e587105ffe4b7d (diff)
hide certain users from the public stream
On identi.ca, certain users (http://identi.ca/derricklo) publish 5-10 automated notices every half hour or hour. This can flood the public stream, making it unreadable for casual readers. We don't want to prevent anyone from using the site for personal use. However, if their personal use clouds up the public space, we can gently remove them from that public space without interfering with their personal activity. So: this change prevents selected people's notices from appearing in the public stream. It's hand-configured by an administrator, and probably doesn't scale beyond 10-20 blacklisted users. It's a stopgap measure. darcs-hash:20081120183722-84dde-8a8401fbcbb6abb60a8b36de249323586ea0b22c.gz
Diffstat (limited to 'classes')
-rw-r--r--classes/Notice.php17
1 files changed, 11 insertions, 6 deletions
diff --git a/classes/Notice.php b/classes/Notice.php
index 92d4b8832..c392c39c9 100644
--- a/classes/Notice.php
+++ b/classes/Notice.php
@@ -357,17 +357,22 @@ class Notice extends Memcached_DataObject
function publicStream($offset=0, $limit=20, $since_id=0, $before_id=0) {
- $needAnd = FALSE;
- $needWhere = TRUE;
-
+ $parts = array();
+
$qry = 'SELECT * FROM notice ';
if (common_config('public', 'localonly')) {
- $qry .= ' WHERE is_local = 1 ';
- $needWhere = FALSE;
- $needAnd = TRUE;
+ $parts[] = 'is_local = 1';
+ }
+
+ if (common_config('public', 'blacklist')) {
+ $parts[] = 'profile_id not in (' . implode(',', common_config('public', 'blacklist')) . ')';
}
+ if ($parts) {
+ $qry .= ' WHERE ' . implode(' AND ', $parts);
+ }
+
return Notice::getStream($qry,
'public',
$offset, $limit, $since_id, $before_id);