summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorBrion Vibber <brion@pobox.com>2010-11-30 16:34:52 -0800
committerBrion Vibber <brion@pobox.com>2010-11-30 16:34:52 -0800
commit749367e12f9742d7fd5ee028230fefa627599125 (patch)
treeb52d7de6bb389fdc5a0e631d8022f409c2908d21 /plugins
parent6bdce2b1e5f7250e5309048cfb64eeefa770f3bb (diff)
parentb4fc54c308936477706acb5cc3c4acae4c3f3a4d (diff)
Merge branch 'master' of gitorious.org:statusnet/mainline into 0.9.x
Conflicts: lib/router.php
Diffstat (limited to 'plugins')
-rw-r--r--plugins/Awesomeness/AwesomenessPlugin.php110
-rw-r--r--plugins/BitlyUrl/BitlyUrlPlugin.php6
-rw-r--r--plugins/TwitterBridge/twitteradminpanel.php5
3 files changed, 120 insertions, 1 deletions
diff --git a/plugins/Awesomeness/AwesomenessPlugin.php b/plugins/Awesomeness/AwesomenessPlugin.php
new file mode 100644
index 000000000..294f09438
--- /dev/null
+++ b/plugins/Awesomeness/AwesomenessPlugin.php
@@ -0,0 +1,110 @@
+<?php
+/**
+ * StatusNet, the distributed open-source microblogging tool
+ *
+ * Plugin to add adittional awesomenss to StatusNet
+ *
+ * PHP version 5
+ *
+ * LICENCE: 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/>.
+ *
+ * @category Plugin
+ * @package StatusNet
+ * @author Jeroen De Dauw <jeroendedauw@gmail.com>
+ * @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')) {
+ exit(1);
+}
+
+/**
+ * Fun sample plugin: tweaks input data and adds a 'Cornify' widget to sidebar.
+ *
+ * @category Plugin
+ * @package StatusNet
+ * @author Jeroen De Dauw <jeroendedauw@gmail.com>
+ * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link http://status.net/
+ */
+
+class AwesomenessPlugin extends Plugin
+{
+
+ const VERSION = '0.0.42';
+
+ public function onPluginVersion(&$versions)
+ {
+ $versions[] = array(
+ 'name' => 'Awesomeness',
+ 'version' => self::VERSION,
+ 'author' => 'Jeroen De Dauw',
+ 'homepage' => 'http://status.net/wiki/Plugin:Awesomeness',
+ 'rawdescription' => _m(
+ 'The Awesomeness plugin adds adittional awesomeness ' .
+ 'to your StatusNet install. '
+ )
+ );
+ return true;
+ }
+
+ /**
+ * Add the conrnify button
+ *
+ * @param Action $action the current action
+ *
+ * @return void
+ */
+
+ function onEndShowSections(Action $action)
+ {
+ $action->elementStart('div', array('id' => 'cornify_section',
+ 'class' => 'section'));
+
+ $action->raw(
+ <<<EOT
+ <a href="http://www.cornify.com" onclick="cornify_add();return false;">
+ <img src="http://www.cornify.com/assets/cornify.gif" width="61" height="16" border="0" alt="Cornify" />
+ </a>
+ <script type="text/javascript">(function() {
+ var js = document.createElement('script');
+ js.type = 'text/javascript';
+ js.async = true;
+ js.src = 'http://www.cornify.com/js/cornify.js';
+ (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(js);
+})();</script>
+EOT
+ );
+
+ $action->elementEnd('div');
+ }
+
+ /**
+ * Hook for new-notice form processing to take our HTML goodies;
+ * won't affect API posting etc.
+ *
+ * @param NewNoticeAction $action
+ * @param User $user
+ * @param string $content
+ * @param array $options
+ * @return boolean hook return
+ */
+ function onStartSaveNewNoticeWeb($action, $user, &$content, &$options)
+ {
+ $content = htmlspecialchars($content);
+ $options['rendered'] = preg_replace("/(^|\s|-)((?:awesome|awesomeness)[\?!\.\,]?)(\s|$)/i", " <b>$2</b> ", $content);
+ }
+
+} \ No newline at end of file
diff --git a/plugins/BitlyUrl/BitlyUrlPlugin.php b/plugins/BitlyUrl/BitlyUrlPlugin.php
index 93a35b3f3..b4f80a50a 100644
--- a/plugins/BitlyUrl/BitlyUrlPlugin.php
+++ b/plugins/BitlyUrl/BitlyUrlPlugin.php
@@ -118,7 +118,7 @@ class BitlyUrlPlugin extends UrlShortenerPlugin
$params = http_build_query(array(
'login' => $this->getLogin(),
'apiKey' => $this->getApiKey()), '', '&');
- $serviceUrl = sprintf($this->serviceUrl, $url) . '&' . $params;
+ $serviceUrl = sprintf($this->serviceUrl, urlencode($url)) . '&' . $params;
$request = HTTPClient::start();
return $request->get($serviceUrl);
@@ -145,6 +145,10 @@ class BitlyUrlPlugin extends UrlShortenerPlugin
common_log(LOG_INFO, $body);
$json = json_decode($body, true);
if ($json['statusCode'] == 'OK') {
+ if (!isset($json['results'][$url])) {
+ common_log(LOG_ERR, "bit.ly returned OK response, but didn't find expected URL $url in $body");
+ return false;
+ }
$data = $json['results'][$url];
if (isset($data['shortUrl'])) {
return true;
diff --git a/plugins/TwitterBridge/twitteradminpanel.php b/plugins/TwitterBridge/twitteradminpanel.php
index d05a2c6b3..1a83b47d5 100644
--- a/plugins/TwitterBridge/twitteradminpanel.php
+++ b/plugins/TwitterBridge/twitteradminpanel.php
@@ -133,6 +133,11 @@ class TwitteradminpanelAction extends AdminPanelAction
$config->query('COMMIT');
+ // Flush the router cache: we may have enabled/disabled bridging,
+ // which will add or remove some actions.
+ $cache = Cache::instance();
+ $cache->delete(Router::cacheKey());
+
return;
}