summaryrefslogtreecommitdiff
path: root/classes
diff options
context:
space:
mode:
authorZach Copley <zach@status.net>2009-11-10 15:25:43 -0800
committerZach Copley <zach@status.net>2009-11-10 15:25:43 -0800
commitdb64b612961c37477d0729e9ff4f882fb5df7b8d (patch)
tree9ae5a31b58a289fc838c29c34230edd3962c231f /classes
parentee3fc8ba03ddd8451cac60547af72ea2cef7dc6a (diff)
parent91332cdadc20e721c22fcf22ca1773cedbde95c5 (diff)
Merge branch '0.9.x' into finish-account-api
* 0.9.x: Added a events for the settings menu items Bringing Sphinx search support up to code: broken out to a plugin, now supports multiple sites on a single server. Changed to Evan's event style and added an AuthPlugin superclass add geo output to statuses in json, xml, atom, rss in API Localisation updates from translatewiki.net (2009-11-10) Localisation updates from translatewiki.net Update pot add lat and long parameters to api/statuses/update change credential check to work more like other events fixup output of object attributes in db error code Performance fix for subscription/subscriber lists based on feedback from ops. Adjusting indexes to make favorites query more efficient, based on feedback from ops. Revert untested code; spews PHP notice warnings on every page view: "just sent a http 200 for the check-fancy from install.php" Added hook for the Group navigation items Updated block @title text (shouldn't say from group) Updated group block markup Revert "Remove more contractions"
Diffstat (limited to 'classes')
-rw-r--r--classes/File_redirection.php8
-rw-r--r--classes/Memcached_DataObject.php29
-rw-r--r--classes/Notice.php12
-rw-r--r--classes/Profile.php4
-rw-r--r--classes/Status_network.php28
-rw-r--r--classes/User.php6
6 files changed, 47 insertions, 40 deletions
diff --git a/classes/File_redirection.php b/classes/File_redirection.php
index c951c1ee7..08a6e8d8b 100644
--- a/classes/File_redirection.php
+++ b/classes/File_redirection.php
@@ -53,7 +53,7 @@ class File_redirection extends Memcached_DataObject
'connect_timeout' => 10, // # seconds to wait
'max_redirs' => $redirs, // # max number of http redirections to follow
'follow_redirects' => true, // Follow redirects
- 'store_body' => false, // We will not need body content here.
+ 'store_body' => false, // We won't need body content here.
));
return $request;
}
@@ -81,12 +81,12 @@ class File_redirection extends Memcached_DataObject
}
try {
$request = self::_commonHttp($short_url, $redirs);
- // Do not include body in output
+ // Don't include body in output
$request->setMethod(HTTP_Request2::METHOD_HEAD);
$response = $request->send();
if (405 == $response->getStatus()) {
- // Server does not support HEAD method? Can this really happen?
+ // Server doesn't support HEAD method? Can this really happen?
// We'll try again as a GET and ignore the response data.
$request = self::_commonHttp($short_url, $redirs);
$response = $request->send();
@@ -178,7 +178,7 @@ class File_redirection extends Memcached_DataObject
case 'aim':
case 'jabber':
case 'xmpp':
- // do not touch anything
+ // don't touch anything
break;
default:
diff --git a/classes/Memcached_DataObject.php b/classes/Memcached_DataObject.php
index 9c2ac3e01..753fe954e 100644
--- a/classes/Memcached_DataObject.php
+++ b/classes/Memcached_DataObject.php
@@ -184,27 +184,20 @@ class Memcached_DataObject extends DB_DataObject
require_once INSTALLDIR.'/lib/search_engines.php';
static $search_engine;
if (!isset($search_engine)) {
- $connected = false;
- if (common_config('sphinx', 'enabled')) {
- $search_engine = new SphinxSearch($this, $table);
- $connected = $search_engine->is_connected();
- }
-
- // unable to connect to sphinx' search daemon
- if (!$connected) {
- if ('mysql' === common_config('db', 'type')) {
- $type = common_config('search', 'type');
- if ($type == 'like') {
- $search_engine = new MySQLLikeSearch($this, $table);
- } else if ($type == 'fulltext') {
- $search_engine = new MySQLSearch($this, $table);
- } else {
- throw new ServerException('Unknown search type: ' . $type);
- }
+ if (Event::handle('GetSearchEngine', array($this, $table, &$search_engine))) {
+ if ('mysql' === common_config('db', 'type')) {
+ $type = common_config('search', 'type');
+ if ($type == 'like') {
+ $search_engine = new MySQLLikeSearch($this, $table);
+ } else if ($type == 'fulltext') {
+ $search_engine = new MySQLSearch($this, $table);
} else {
- $search_engine = new PGSearch($this, $table);
+ throw new ServerException('Unknown search type: ' . $type);
}
+ } else {
+ $search_engine = new PGSearch($this, $table);
}
+ }
}
return $search_engine;
}
diff --git a/classes/Notice.php b/classes/Notice.php
index 32a8b693c..291e6202b 100644
--- a/classes/Notice.php
+++ b/classes/Notice.php
@@ -146,7 +146,7 @@ class Notice extends Memcached_DataObject
/* Add them to the database */
foreach(array_unique($hashtags) as $hashtag) {
- /* elide characters we do not want in the tag */
+ /* elide characters we don't want in the tag */
$this->saveTag($hashtag);
}
return true;
@@ -1105,7 +1105,7 @@ class Notice extends Memcached_DataObject
if (empty($recipient)) {
continue;
}
- // Do not save replies from blocked profile to local user
+ // Don't save replies from blocked profile to local user
$recipient_user = User::staticGet('id', $recipient->id);
if (!empty($recipient_user) && $recipient_user->hasBlocked($sender)) {
continue;
@@ -1131,7 +1131,7 @@ class Notice extends Memcached_DataObject
$tagged = Profile_tag::getTagged($sender->id, $tag);
foreach ($tagged as $t) {
if (!$replied[$t->id]) {
- // Do not save replies from blocked profile to local user
+ // Don't save replies from blocked profile to local user
$t_user = User::staticGet('id', $t->id);
if ($t_user && $t_user->hasBlocked($sender)) {
continue;
@@ -1254,6 +1254,12 @@ class Notice extends Memcached_DataObject
}
}
+ if (!empty($this->lat) && !empty($this->lon)) {
+ $xs->elementStart('geo', array('xmlns:georss' => 'http://www.georss.org/georss'));
+ $xs->element('georss:point', null, $this->lat . ' ' . $this->lon);
+ $xs->elementEnd('geo');
+ }
+
$xs->elementEnd('entry');
return $xs->getString();
diff --git a/classes/Profile.php b/classes/Profile.php
index a50f4951d..7c1e9db33 100644
--- a/classes/Profile.php
+++ b/classes/Profile.php
@@ -101,7 +101,7 @@ class Profile extends Memcached_DataObject
}
foreach (array(AVATAR_PROFILE_SIZE, AVATAR_STREAM_SIZE, AVATAR_MINI_SIZE) as $size) {
- # We do not do a scaled one if original is our scaled size
+ # We don't do a scaled one if original is our scaled size
if (!($avatar->width == $size && $avatar->height == $size)) {
$scaled_filename = $imagefile->resize($size);
@@ -174,7 +174,7 @@ class Profile extends Memcached_DataObject
function getNotices($offset=0, $limit=NOTICES_PER_PAGE, $since_id=0, $max_id=0, $since=null)
{
- // XXX: I'm not sure this is going to be any faster. It probably is not.
+ // XXX: I'm not sure this is going to be any faster. It probably isn't.
$ids = Notice::stream(array($this, '_streamDirect'),
array(),
'profile:notice_ids:' . $this->id,
diff --git a/classes/Status_network.php b/classes/Status_network.php
index fe4f0b0c5..b3117640d 100644
--- a/classes/Status_network.php
+++ b/classes/Status_network.php
@@ -57,14 +57,16 @@ class Status_network extends DB_DataObject
$config['db']['ini_'.$dbname] = INSTALLDIR.'/classes/status_network.ini';
$config['db']['table_status_network'] = $dbname;
- self::$cache = new Memcache();
+ if (class_exists('Memcache')) {
+ self::$cache = new Memcache();
- if (is_array($servers)) {
- foreach($servers as $server) {
- self::$cache->addServer($server);
+ if (is_array($servers)) {
+ foreach($servers as $server) {
+ self::$cache->addServer($server);
+ }
+ } else {
+ self::$cache->addServer($servers);
}
- } else {
- self::$cache->addServer($servers);
}
self::$base = $dbname;
@@ -76,6 +78,10 @@ class Status_network extends DB_DataObject
static function memGet($k, $v)
{
+ if (!self::$cache) {
+ return self::staticGet($k, $v);
+ }
+
$ck = self::cacheKey($k, $v);
$sn = self::$cache->get($ck);
@@ -92,10 +98,12 @@ class Status_network extends DB_DataObject
function decache()
{
- $keys = array('nickname', 'hostname', 'pathname');
- foreach ($keys as $k) {
- $ck = self::cacheKey($k, $this->$k);
- self::$cache->delete($ck);
+ if (self::$cache) {
+ $keys = array('nickname', 'hostname', 'pathname');
+ foreach ($keys as $k) {
+ $ck = self::cacheKey($k, $this->$k);
+ self::$cache->delete($ck);
+ }
}
}
diff --git a/classes/User.php b/classes/User.php
index c529b82e0..9b90ce61b 100644
--- a/classes/User.php
+++ b/classes/User.php
@@ -87,7 +87,7 @@ class User extends Memcached_DataObject
return (is_null($sub)) ? false : true;
}
- // 'update' will not write key columns, so we have to do it ourselves.
+ // 'update' won't write key columns, so we have to do it ourselves.
function updateKeys(&$orig)
{
@@ -384,7 +384,7 @@ class User extends Memcached_DataObject
return false;
}
- // Otherwise, cache does not have all faves;
+ // Otherwise, cache doesn't have all faves;
// fall through to the default
}
@@ -463,7 +463,7 @@ class User extends Memcached_DataObject
{
$cache = common_memcache();
if ($cache) {
- // Faves do not happen chronologically, so we need to blow
+ // Faves don't happen chronologically, so we need to blow
// ;last cache, too
$cache->delete(common_cache_key('fave:ids_by_user:'.$this->id));
$cache->delete(common_cache_key('fave:ids_by_user:'.$this->id.';last'));