From a05e674843afdbae3f138f541624708a664f1f2a Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Mon, 12 Apr 2010 11:49:59 -0700 Subject: [PATCH 1/4] showplugins.php: dump list of activated plugins and their settings on this site --- lib/statusnet.php | 15 +++++++++++++++ scripts/showplugins.php | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100755 scripts/showplugins.php diff --git a/lib/statusnet.php b/lib/statusnet.php index eba9ab9b8e..2aa73486eb 100644 --- a/lib/statusnet.php +++ b/lib/statusnet.php @@ -31,6 +31,7 @@ class StatusNet { protected static $have_config; protected static $is_api; + protected static $plugins = array(); /** * Configure and instantiate a plugin into the current configuration. @@ -74,9 +75,22 @@ class StatusNet $inst->$aname = $avalue; } } + + // Record activated plugins for later display/config dump + self::$plugins[] = array($name, $attrs); + 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 * and plugins. @@ -232,6 +246,7 @@ class StatusNet global $_server, $_path, $config; Event::clearHandlers(); + self::$plugins = array(); // try to figure out where we are. $server and $path // can be set by including module, else we guess based diff --git a/scripts/showplugins.php b/scripts/showplugins.php new file mode 100755 index 0000000000..058393b0ee --- /dev/null +++ b/scripts/showplugins.php @@ -0,0 +1,38 @@ +#!/usr/bin/env php +. + */ + +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"; +} From 946328771047974d918a167eae3e8d74211fabe8 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Mon, 12 Apr 2010 11:49:59 -0700 Subject: [PATCH 2/4] showplugins.php: dump list of activated plugins and their settings on this site --- lib/statusnet.php | 15 +++++++++++++++ scripts/showplugins.php | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100755 scripts/showplugins.php diff --git a/lib/statusnet.php b/lib/statusnet.php index eba9ab9b8e..2aa73486eb 100644 --- a/lib/statusnet.php +++ b/lib/statusnet.php @@ -31,6 +31,7 @@ class StatusNet { protected static $have_config; protected static $is_api; + protected static $plugins = array(); /** * Configure and instantiate a plugin into the current configuration. @@ -74,9 +75,22 @@ class StatusNet $inst->$aname = $avalue; } } + + // Record activated plugins for later display/config dump + self::$plugins[] = array($name, $attrs); + 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 * and plugins. @@ -232,6 +246,7 @@ class StatusNet global $_server, $_path, $config; Event::clearHandlers(); + self::$plugins = array(); // try to figure out where we are. $server and $path // can be set by including module, else we guess based diff --git a/scripts/showplugins.php b/scripts/showplugins.php new file mode 100755 index 0000000000..058393b0ee --- /dev/null +++ b/scripts/showplugins.php @@ -0,0 +1,38 @@ +#!/usr/bin/env php +. + */ + +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"; +} From d445b977fc63a4a97b91dd7fc047029115ffaf18 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 14 Apr 2010 11:09:54 +0200 Subject: [PATCH 3/4] move comment to correct place --- classes/Notice.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/Notice.php b/classes/Notice.php index b416e2ff28..b0ead3c420 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -148,11 +148,11 @@ class Notice extends Memcached_DataObject //turn each into their canonical tag //this is needed to remove dupes before saving e.g. #hash.tag = #hashtag for($i=0; $isaveTag($hashtag); self::blow('profile:notice_ids_tagged:%d:%s', $this->profile_id, $hashtag); } From a21a17263956808e074fb62551300c5d6297387b Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 14 Apr 2010 11:11:02 +0200 Subject: [PATCH 4/4] Fix for "#foo !foo" in same notice failing during save, causing failout before distribution. Move saveGroups after saveTags when saving notices; groups may save additional tags, so need to be moved after so the check for duplicates actually works. --- classes/Notice.php | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/classes/Notice.php b/classes/Notice.php index b0ead3c420..a8147e4c4d 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -373,18 +373,20 @@ class Notice extends Memcached_DataObject $notice->saveReplies(); } - if (isset($groups)) { - $notice->saveKnownGroups($groups); - } else { - $notice->saveGroups(); - } - if (isset($tags)) { $notice->saveKnownTags($tags); } else { $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)) { $notice->saveKnownUrls($urls); } else {