You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
969 B

namespace p3k\XRay;
use p3k\XRay\Formats;
class Parser {
private $http;
public function __construct($http) {
$this->http = $http;
public function parse($body, $url, $opts=[]) {
// Check if the URL matches a special parser
if(Formats\Instagram::matches($url)) {
return Formats\Instagram::parse($this->http, $body, $url);
if(Formats\GitHub::matches($url)) {
return Formats\GitHub::parse($body, $url);
if(Formats\Twitter::matches($url)) {
return Formats\Twitter::parse($body, $url);
if(Formats\XKCD::matches($url)) {
return Formats\XKCD::parse($body, $url);
// No special parsers matched, parse for Microformats now
return Formats\HTML::parse($this->http, $body, $url, $opts);