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.
 
 

38 lines
732 B

<?php
namespace p3k\XRay;
use p3k\XRay\Formats;
class Parser {
private $http;
public function __construct($http) {
$this->http = $http;
}
public function parse($body, $url, $opts=[]) {
if(isset($opts['timeout']))
$this->http->set_timeout($opts['timeout']);
if(isset($opts['max_redirects']))
$this->http->set_max_redirects($opts['max_redirects']);
// 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);
}
return [
'data' => [
'type' => 'unknown'
]
];
}
}