| <?php | |
| namespace p3k; | |
| 
 | |
| class XRay { | |
|   public $http; | |
| 
 | |
|   public function __construct() { | |
|     $this->http = new HTTP('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36 p3k/XRay'); | |
|   } | |
| 
 | |
|   public function rels($url, $opts=[]) { | |
|     $rels = new XRay\Rels($this->http); | |
|     return $rels->parse($url, $opts); | |
|   } | |
| 
 | |
|   public function feeds($url, $opts=[]) { | |
|     $feeds = new XRay\Feeds($this->http); | |
|     return $feeds->find($url, $opts); | |
|   } | |
| 
 | |
|   public function parse($url, $opts_or_body=false, $opts_for_body=[]) { | |
|     if(!$opts_or_body || is_array($opts_or_body)) { | |
|       $fetch = new XRay\Fetcher($this->http); | |
|       $response = $fetch->fetch($url, $opts_or_body); | |
|       if(!empty($response['error'])) | |
|         return $response; | |
|       $body = $response['body']; | |
|       $url = $response['url']; | |
|       $code = $response['code']; | |
|       $opts = is_array($opts_or_body) ? $opts_or_body : $opts_for_body; | |
|     } else { | |
|       $body = $opts_or_body; | |
|       $opts = $opts_for_body; | |
|       $code = null; | |
|     } | |
|     $parser = new XRay\Parser($this->http); | |
| 
 | |
|     $result = $parser->parse([ | |
|       'body' => $body, | |
|       'url' => $url, | |
|       'code' => $code, | |
|     ], $opts); | |
| 
 | |
|     if(!isset($opts['include_original']) || !$opts['include_original']) | |
|       unset($result['original']); | |
|     if(!isset($result['url'])) $result['url'] = $url; | |
|     if(!isset($result['code'])) $result['code'] = $code; | |
|     if(!isset($result['source-format'])) $result['source-format'] = null; | |
|     return $result; | |
|   } | |
| 
 | |
|   public function process($url, $mf2json, $opts=[]) { | |
|     $parser = new XRay\Parser($this->http); | |
|     $result = $parser->parse([ | |
|       'body' => $mf2json, | |
|       'url' => $url, | |
|       'code' => null, | |
|     ], $opts); | |
|     if(!isset($opts['include_original']) || !$opts['include_original']) | |
|       unset($result['original']); | |
|     if(!isset($result['url'])) $result['url'] = $url; | |
|     if(!isset($result['source-format'])) $result['source-format'] = null; | |
|     return $result; | |
|   } | |
| 
 | |
| }
 |