aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xlibrary/slinky.php32
1 files changed, 31 insertions, 1 deletions
diff --git a/library/slinky.php b/library/slinky.php
index 51432c3f5..56734c9fb 100755
--- a/library/slinky.php
+++ b/library/slinky.php
@@ -153,7 +153,7 @@ class Slinky {
public function set_service_from_url( $url = false ) {
if ( !$url )
$url = $this->url;
-
+
$host = parse_url( $url, PHP_URL_HOST );
switch ( str_replace( 'www.', '', $host ) ) {
case 'bit.ly':
@@ -181,6 +181,11 @@ class Slinky {
$this->service = new Slinky_Fongs();
break;
}
+ case $this->get( 'yourls-url' ):
+ if ( class_exists( 'Slinky_YourLS' ) ) {
+ $this->service = new Slinky_YourLS();
+ break;
+ }
case 'micurl.com':
if ( class_exists( 'Slinky_Micurl' ) ) {
$this->service = new Slinky_Micurl();
@@ -574,6 +579,31 @@ class Slinky_Fongs extends Slinky_Service {
}
}
+// yourls
+class Slinky_YourLS extends Slinky_Service {
+ function url_is_short( $url ) {
+ return stristr( $url, 'shit.li/' );
+ }
+
+ function url_is_long( $url ) {
+ return !stristr( $url, 'shit.li/' );
+ }
+
+ function make_short( $url ) {
+ echo $this->get( 'username' );
+ $use_ssl = $this->get( 'ssl' );
+ if ( $use_ssl )
+ $use_ssl = 's';
+ else
+ $use_ssl = '';
+ $result = $this->url_get( 'http'. $use_ssl . '://' . $this->get( 'yourls-url' ) . '/yourls-api.php?username=' . $this->get( 'username' ) . '&password=' . $this->get( 'password' ) . '&action=shorturl&format=simple&url=' . urlencode( $url ) );
+ if ( 1 != $result && 2 != $result )
+ return $result;
+ else
+ return $url;
+ }
+}
+
// Micu.rl
class Slinky_Micurl extends Slinky_Service {
function url_is_short( $url ) {