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:----SeUdAvcMjDnkqzZWy0WruiKrqc3zqJZVC0HG0veL+f/NBBT1JhzdOlkGqf18V7tt24NdWb5GSfVsrMr4rnTTByItJP+D3x0J3r4n7yIse3p4dN2sECH7XojFXrsLCzJybrNw8cr62Ibg/i0GsRo55ldtRecvBipTAS7brLZgJ3Ffu3Ylr3udZmNUshU56G8SUdV8JPSl7SeIJFEN0YFApEU5fWD+S8oKjz7PVG3HjW72SN7CWXLzyKc/tSYBwWhbp7RZvByjdvleqxr1nnA4a1yHC+rZdZXyxyVUbnJTE5bdTb7JZLi3a9yIIiyQZLpCwS1K8TZsyHlv5Lzr455XM6kCPSeyeYgxl9H+knpPdkpxY9lXc147cgnOctw6EYa7GWyrSbRhAg0X+fBpweozW042lHZDYuXYzU4wjOgYiXXqh4eZ+3bx629H40h9K3dUiliRuHx6MI/ajUbHaXdhw742XyO+GJlt/+ZVB7TUeiktdviSJM+gyeKnzmdt3E9qmz39ltwOkq8c4ZHzgy0kmJUUuP2TbearRDYvXwGEBBpkYgrMsfBPOu0HaGC/oHsWPRs0l7YztWU2jcyl67w+xWNrkn1nSN1lvkeukzlot2vmdP0V0tW8IGddoEIIYtGXeklGWcSk4r47cnOWKauz9v33DXA7e0Q/Jf49+LOOY58=----ATTACHMENT:----MTEzMjUyNTk5NjA3MTIyOSA1MjgwNDYxNjE0MDA3MzMgNjE0MzcxNjcwMjg3NzAyOQ==