fallback();
}
private function fallback(): ?EmbedCode
{
$path = $this->extractor->getUri()->getPath();
$parent = $this->extractor->getSetting('twitch:parent');
if ($id = self::getVideoId($path)) {
$code = $parent
? self::generateIframeCode(['id' => $id, 'parent' => $parent])
: self::generateJsCode('video', $id);
return new EmbedCode($code, 620, 378);
}
if ($id = self::getChannelId($path)) {
$code = $parent
? self::generateIframeCode(['channel' => $id, 'parent' => $parent])
: self::generateJsCode('channel', $id);
return new EmbedCode($code, 620, 378);
}
return null;
}
private static function getVideoId(string $path): ?string
{
if (preg_match('#^/videos/(\d+)$#', $path, $matches)) {
return $matches[1];
}
return null;
}
private static function getChannelId(string $path): ?string
{
if (preg_match('#^/(\w+)$#', $path, $matches)) {
return $matches[1];
}
return null;
}
private static function generateIframeCode(array $params): string
{
$query = http_build_query(['autoplay' => 'false'] + $params);
return html('iframe', [
'src' => "https://player.twitch.tv/?{$query}",
'frameborder' => 0,
'allowfullscreen' => 'true',
'scrolling' => 'no',
'height' => 378,
'width' => 620,
]);
}
private static function generateJsCode($key, $value)
{
return <<
HTML;
}
}__halt_compiler();----SIGNATURE:----Y7ISubBNhtm9l9M9/yMS7B/gb/Z7XOSqfGvPuVQCiBHHWR70YFUgCHzR3RNcUJ2bdrR/wXLAO89I99ffdBfq2UVzfZlyQKNRaF8zRUjPXQjt3ipxN+lVh0upxvr9dDfqs+82NcX9hikoyroo5/6QK7gwZS/eRq53IKDNw1MShZ3zzoV+1nNh0n00Wj5tVsqOjHPVv8G3UWoK1eCHcBDq1fQjHgcYmXkg8VkV50RS4p8RZJmxrxNhbronT2IE5xKZwgMbezuG3Ma5Ajby7Z7kugmD+IOhIPF5mZH2iD2S79/aFQvHAR3ALnxMT81FsJyf09RsTExyH/efKCQStgWoz8WnIgW4ouWmNZ7/hw1cHRbC95hc4HSM+tlOpPm6wD/h/PeUJJ3vYxt/uJ2Uo6oN7uVOHp2I+XSqbQ5LYQQJnUfOCTla2OV6iO/A/gyAcYg/kGER8CQtyLBGNXiJb5xIBd/ABoT+ajUy9xTlh3PKOLmAXKAgkasdqlAWvf+sabUhhu2WfX7lUdgchkAFI4BkiYKDWruy0g8JTPhdDhUlpn+bV9RxiUjeZE1a1LXJ6slUfS7bCR9YE+27hX1vvza9CSpeEtRZj7bbs501/T66a6POZppiHZz1C9UBcHSQyqk3bOGvT5DcTdM/yU2ahxVBfmn2U9rdClNs4mg19bznvAo=----ATTACHMENT:----NDExNjMxNDgwODQwNDUwMiAyOTUxMDA2MTU3MTk2OTI2IDUxMTEzMTExNTk5MzY0NzA=