]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
move url shortener superclass to lib from plugin
authorEvan Prodromou <evan@status.net>
Sat, 24 Apr 2010 18:22:51 +0000 (14:22 -0400)
committerEvan Prodromou <evan@status.net>
Sat, 24 Apr 2010 18:22:51 +0000 (14:22 -0400)
lib/urlshortenerplugin.php [new file with mode: 0644]
plugins/BitlyUrl/BitlyUrlPlugin.php
plugins/LilUrl/LilUrlPlugin.php
plugins/PtitUrl/PtitUrlPlugin.php
plugins/SimpleUrl/SimpleUrlPlugin.php
plugins/TightUrl/TightUrlPlugin.php
plugins/UrlShortener/UrlShortenerPlugin.php [deleted file]

diff --git a/lib/urlshortenerplugin.php b/lib/urlshortenerplugin.php
new file mode 100644 (file)
index 0000000..8acfac2
--- /dev/null
@@ -0,0 +1,155 @@
+<?php
+/**
+ * StatusNet, the distributed open-source microblogging tool
+ *
+ * Superclass for plugins that do URL shortening
+ *
+ * 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   Craig Andrews <candrews@integralblue.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') && !defined('LACONICA')) {
+    exit(1);
+}
+
+/**
+ * Superclass for plugins that do URL shortening
+ *
+ * @category Plugin
+ * @package  StatusNet
+ * @author   Craig Andrews <candrews@integralblue.com>
+ * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link     http://status.net/
+ */
+
+abstract class UrlShortenerPlugin extends Plugin
+{
+    public $shortenerName;
+    public $freeService = false;
+
+    // Url Shortener plugins should implement some (or all)
+    // of these methods
+
+    /**
+     * Make an URL shorter.
+     *
+     * @param string $url URL to shorten
+     *
+     * @return string shortened version of the url, or null on failure
+     */
+
+    protected abstract function shorten($url);
+
+    /**
+     * Utility to get the data at an URL
+     *
+     * @param string $url URL to fetch
+     *
+     * @return string response body
+     *
+     * @todo rename to code-standard camelCase httpGet()
+     */
+
+    protected function http_get($url)
+    {
+        $request  = HTTPClient::start();
+        $response = $request->get($url);
+        return $response->getBody();
+    }
+
+    /**
+     * Utility to post a request and get a response URL
+     *
+     * @param string $url  URL to fetch
+     * @param array  $data post parameters
+     *
+     * @return string response body
+     *
+     * @todo rename to code-standard httpPost()
+     */
+
+    protected function http_post($url, $data)
+    {
+        $request  = HTTPClient::start();
+        $response = $request->post($url, null, $data);
+        return $response->getBody();
+    }
+
+    // Hook handlers
+
+    /**
+     * Called when all plugins have been initialized
+     *
+     * @return boolean hook value
+     */
+
+    function onInitializePlugin()
+    {
+        if (!isset($this->shortenerName)) {
+            throw new Exception("must specify a shortenerName");
+        }
+        return true;
+    }
+
+    /**
+     * Called when a showing the URL shortener drop-down box
+     *
+     * Properties of the shortening service currently only
+     * include whether it's a free service.
+     *
+     * @param array &$shorteners array mapping shortener name to properties
+     *
+     * @return boolean hook value
+     */
+
+    function onGetUrlShorteners(&$shorteners)
+    {
+        $shorteners[$this->shortenerName] =
+          array('freeService' => $this->freeService);
+        return true;
+    }
+
+    /**
+     * Called to shorten an URL
+     *
+     * @param string $url           URL to shorten
+     * @param string $shortenerName Shortening service. Don't handle if it's
+     *                              not you!
+     * @param string &$shortenedUrl URL after shortening; out param.
+     *
+     * @return boolean hook value
+     */
+
+    function onStartShortenUrl($url, $shortenerName, &$shortenedUrl)
+    {
+        if ($shortenerName == $this->shortenerName) {
+            $result = $this->shorten($url);
+            if (isset($result) && $result != null && $result !== false) {
+                $shortenedUrl = $result;
+                common_log(LOG_INFO,
+                           __CLASS__ . ": $this->shortenerName ".
+                           "shortened $url to $shortenedUrl");
+                return false;
+            }
+        }
+        return true;
+    }
+}
index f7f28b4d6c53209eaa411bb8721101383f381b75..b649d3d0b2cc5eca2b6c8cff782f812032415027 100644 (file)
@@ -31,8 +31,6 @@ if (!defined('STATUSNET')) {
     exit(1);
 }
 
-require_once INSTALLDIR.'/plugins/UrlShortener/UrlShortenerPlugin.php';
-
 class BitlyUrlPlugin extends UrlShortenerPlugin
 {
     public $serviceUrl;
index c3e37c0c0f358a76bde8bf9633992f947fe7c034..cdff9f4e657021b26170a385eb36c718ec506a88 100644 (file)
@@ -31,8 +31,6 @@ if (!defined('STATUSNET')) {
     exit(1);
 }
 
-require_once INSTALLDIR.'/plugins/UrlShortener/UrlShortenerPlugin.php';
-
 class LilUrlPlugin extends UrlShortenerPlugin
 {
     public $serviceUrl;
index ddba942e6d4ab7eb07a8b70306cf5e5f8849cae1..cdf46846ba43cbe981e5b5bb91209d9788602bd0 100644 (file)
@@ -30,7 +30,6 @@
 if (!defined('STATUSNET')) {
     exit(1);
 }
-require_once INSTALLDIR.'/plugins/UrlShortener/UrlShortenerPlugin.php';
 
 class PtitUrlPlugin extends UrlShortenerPlugin
 {
index 6eac7dbb1e37cb15a7154aa600fe7d73ba0ef105..5d3f97d33dbdfc53b792fefc8304937175432c16 100644 (file)
@@ -31,8 +31,6 @@ if (!defined('STATUSNET')) {
     exit(1);
 }
 
-require_once INSTALLDIR.'/plugins/UrlShortener/UrlShortenerPlugin.php';
-
 class SimpleUrlPlugin extends UrlShortenerPlugin
 {
     public $serviceUrl;
index e2d494a7bda4c4ebf2c7714c7a31259b8e7ee18b..f242db6c8093307a9c41e9bf937ceaf02718776e 100644 (file)
@@ -31,8 +31,6 @@ if (!defined('STATUSNET')) {
     exit(1);
 }
 
-require_once INSTALLDIR.'/plugins/UrlShortener/UrlShortenerPlugin.php';
-
 class TightUrlPlugin extends UrlShortenerPlugin
 {
     public $serviceUrl;
diff --git a/plugins/UrlShortener/UrlShortenerPlugin.php b/plugins/UrlShortener/UrlShortenerPlugin.php
deleted file mode 100644 (file)
index 8acfac2..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-<?php
-/**
- * StatusNet, the distributed open-source microblogging tool
- *
- * Superclass for plugins that do URL shortening
- *
- * 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   Craig Andrews <candrews@integralblue.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') && !defined('LACONICA')) {
-    exit(1);
-}
-
-/**
- * Superclass for plugins that do URL shortening
- *
- * @category Plugin
- * @package  StatusNet
- * @author   Craig Andrews <candrews@integralblue.com>
- * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link     http://status.net/
- */
-
-abstract class UrlShortenerPlugin extends Plugin
-{
-    public $shortenerName;
-    public $freeService = false;
-
-    // Url Shortener plugins should implement some (or all)
-    // of these methods
-
-    /**
-     * Make an URL shorter.
-     *
-     * @param string $url URL to shorten
-     *
-     * @return string shortened version of the url, or null on failure
-     */
-
-    protected abstract function shorten($url);
-
-    /**
-     * Utility to get the data at an URL
-     *
-     * @param string $url URL to fetch
-     *
-     * @return string response body
-     *
-     * @todo rename to code-standard camelCase httpGet()
-     */
-
-    protected function http_get($url)
-    {
-        $request  = HTTPClient::start();
-        $response = $request->get($url);
-        return $response->getBody();
-    }
-
-    /**
-     * Utility to post a request and get a response URL
-     *
-     * @param string $url  URL to fetch
-     * @param array  $data post parameters
-     *
-     * @return string response body
-     *
-     * @todo rename to code-standard httpPost()
-     */
-
-    protected function http_post($url, $data)
-    {
-        $request  = HTTPClient::start();
-        $response = $request->post($url, null, $data);
-        return $response->getBody();
-    }
-
-    // Hook handlers
-
-    /**
-     * Called when all plugins have been initialized
-     *
-     * @return boolean hook value
-     */
-
-    function onInitializePlugin()
-    {
-        if (!isset($this->shortenerName)) {
-            throw new Exception("must specify a shortenerName");
-        }
-        return true;
-    }
-
-    /**
-     * Called when a showing the URL shortener drop-down box
-     *
-     * Properties of the shortening service currently only
-     * include whether it's a free service.
-     *
-     * @param array &$shorteners array mapping shortener name to properties
-     *
-     * @return boolean hook value
-     */
-
-    function onGetUrlShorteners(&$shorteners)
-    {
-        $shorteners[$this->shortenerName] =
-          array('freeService' => $this->freeService);
-        return true;
-    }
-
-    /**
-     * Called to shorten an URL
-     *
-     * @param string $url           URL to shorten
-     * @param string $shortenerName Shortening service. Don't handle if it's
-     *                              not you!
-     * @param string &$shortenedUrl URL after shortening; out param.
-     *
-     * @return boolean hook value
-     */
-
-    function onStartShortenUrl($url, $shortenerName, &$shortenedUrl)
-    {
-        if ($shortenerName == $this->shortenerName) {
-            $result = $this->shorten($url);
-            if (isset($result) && $result != null && $result !== false) {
-                $shortenedUrl = $result;
-                common_log(LOG_INFO,
-                           __CLASS__ . ": $this->shortenerName ".
-                           "shortened $url to $shortenedUrl");
-                return false;
-            }
-        }
-        return true;
-    }
-}