diff --git a/library/slinky.php b/library/slinky.php index 51432c3f53..56734c9fb0 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 ) {