123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- <?php
- if (!defined('STATUSNET') && !defined('LACONICA')) {
- exit(1);
- }
- abstract class UrlShortenerPlugin extends Plugin
- {
- public $shortenerName;
- public $freeService = false;
-
-
-
- protected abstract function shorten($url);
-
- protected function http_get($url)
- {
- $request = HTTPClient::start();
- $response = $request->get($url);
- return $response->getBody();
- }
-
- protected function http_post($url, $data)
- {
- $request = HTTPClient::start();
- $response = $request->post($url, null, $data);
- return $response->getBody();
- }
-
-
- function onInitializePlugin()
- {
- if (!isset($this->shortenerName)) {
- throw new Exception("must specify a shortenerName");
- }
- return true;
- }
-
- function onGetUrlShorteners(&$shorteners)
- {
- $shorteners[$this->shortenerName] =
- array('freeService' => $this->freeService);
- return true;
- }
-
- 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;
- }
- }
|