Merge branch 'testing' into 0.9.x

This commit is contained in:
Brion Vibber 2010-04-14 11:15:48 +02:00
commit f789928942
3 changed files with 62 additions and 7 deletions

View File

@ -148,11 +148,11 @@ class Notice extends Memcached_DataObject
//turn each into their canonical tag //turn each into their canonical tag
//this is needed to remove dupes before saving e.g. #hash.tag = #hashtag //this is needed to remove dupes before saving e.g. #hash.tag = #hashtag
for($i=0; $i<count($hashtags); $i++) { for($i=0; $i<count($hashtags); $i++) {
/* elide characters we don't want in the tag */
$hashtags[$i] = common_canonical_tag($hashtags[$i]); $hashtags[$i] = common_canonical_tag($hashtags[$i]);
} }
foreach(array_unique($hashtags) as $hashtag) { foreach(array_unique($hashtags) as $hashtag) {
/* elide characters we don't want in the tag */
$this->saveTag($hashtag); $this->saveTag($hashtag);
self::blow('profile:notice_ids_tagged:%d:%s', $this->profile_id, $hashtag); self::blow('profile:notice_ids_tagged:%d:%s', $this->profile_id, $hashtag);
} }
@ -374,18 +374,20 @@ class Notice extends Memcached_DataObject
$notice->saveReplies(); $notice->saveReplies();
} }
if (isset($groups)) {
$notice->saveKnownGroups($groups);
} else {
$notice->saveGroups();
}
if (isset($tags)) { if (isset($tags)) {
$notice->saveKnownTags($tags); $notice->saveKnownTags($tags);
} else { } else {
$notice->saveTags(); $notice->saveTags();
} }
// Note: groups may save tags, so must be run after tags are saved
// to avoid errors on duplicates.
if (isset($groups)) {
$notice->saveKnownGroups($groups);
} else {
$notice->saveGroups();
}
if (isset($urls)) { if (isset($urls)) {
$notice->saveKnownUrls($urls); $notice->saveKnownUrls($urls);
} else { } else {

View File

@ -31,6 +31,7 @@ class StatusNet
{ {
protected static $have_config; protected static $have_config;
protected static $is_api; protected static $is_api;
protected static $plugins = array();
/** /**
* Configure and instantiate a plugin into the current configuration. * Configure and instantiate a plugin into the current configuration.
@ -74,9 +75,22 @@ class StatusNet
$inst->$aname = $avalue; $inst->$aname = $avalue;
} }
} }
// Record activated plugins for later display/config dump
self::$plugins[] = array($name, $attrs);
return true; return true;
} }
/**
* Get a list of activated plugins in this process.
* @return array of (string $name, array $args) pairs
*/
public static function getActivePlugins()
{
return self::$plugins;
}
/** /**
* Initialize, or re-initialize, StatusNet global configuration * Initialize, or re-initialize, StatusNet global configuration
* and plugins. * and plugins.
@ -232,6 +246,7 @@ class StatusNet
global $_server, $_path, $config; global $_server, $_path, $config;
Event::clearHandlers(); Event::clearHandlers();
self::$plugins = array();
// try to figure out where we are. $server and $path // try to figure out where we are. $server and $path
// can be set by including module, else we guess based // can be set by including module, else we guess based

38
scripts/showplugins.php Executable file
View File

@ -0,0 +1,38 @@
#!/usr/bin/env php
<?php
/*
* StatusNet - a distributed open-source microblogging tool
* Copyright (C) 2010, StatusNet, Inc.
*
* 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 <http://www.gnu.org/licenses/>.
*/
define('INSTALLDIR', realpath(dirname(__FILE__) . '/..'));
require_once INSTALLDIR.'/scripts/commandline.inc';
foreach (StatusNet::getActivePlugins() as $data) {
list($plugin, $args) = $data;
echo "$plugin: ";
if ($args === null) {
echo "(no args)\n";
} else {
foreach ($args as $arg => $val) {
echo "\n $arg: ";
var_export($val);
}
echo "\n";
}
echo "\n";
}