* @link http://www.michael-pratt.com/ * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Embera\Provider; use Embera\Url; /** * Streamable Provider * @link https://streamable.com */ class Streamable extends ProviderAdapter implements ProviderInterface { /** inline {@inheritdoc} */ protected $endpoint = 'https://api.streamable.com/oembed.json'; /** inline {@inheritdoc} */ protected static $hosts = [ 'streamable.com' ]; /** inline {@inheritdoc} */ protected $httpsSupport = true; /** inline {@inheritdoc} */ public function validateUrl(Url $url) { return (bool) (preg_match('~streamable\.com/([^/]+)~i', (string) $url)); } /** inline {@inheritdoc} */ public function normalizeUrl(Url $url) { $url->convertToHttps(); $url->removeQueryString(); $url->removeLastSlash(); return $url; } /** inline {@inheritdoc} */ public function getFakeResponse() { $embedUrl = str_replace('streamable.com/', 'streamable.com/o/', (string) $this->url); $attr = []; $attr[] = 'class="streamable-embed"'; $attr[] = 'src="' . $embedUrl . '"'; $attr[] = 'frameborder="0"'; $attr[] = 'scrolling="no"'; $attr[] = 'width="{width}"'; $attr[] = 'height="{height}"'; $attr[] = 'allowfullscreen'; return [ 'type' => 'video', 'provider_name' => 'Streamable', 'provider_url' => 'https://streamable.com', 'title' => 'Unknown title', 'html' => '', ]; } }