|  | <?php | 
						
						
							|  | namespace p3k\XRay; | 
						
						
							|  | 
 | 
						
						
							|  | function view($template, $data=[]) { | 
						
						
							|  |   global $templates; | 
						
						
							|  |   return $templates->render($template, $data); | 
						
						
							|  | } | 
						
						
							|  | 
 | 
						
						
							|  | // Adds slash if no path is in the URL, and convert hostname to lowercase | 
						
						
							|  | function normalize_url($url) { | 
						
						
							|  |   $parts = parse_url($url); | 
						
						
							|  |   if(empty($parts['path'])) | 
						
						
							|  |     $parts['path'] = '/'; | 
						
						
							|  |   $parts['host'] = strtolower($parts['host']); | 
						
						
							|  |   return build_url($parts); | 
						
						
							|  | } | 
						
						
							|  | 
 | 
						
						
							|  | function normalize_urls($urls) { | 
						
						
							|  |   return array_map('\p3k\XRay\normalize_url', $urls); | 
						
						
							|  | } | 
						
						
							|  | 
 | 
						
						
							|  | function urls_are_equal($url1, $url2) { | 
						
						
							|  |   $url1 = normalize_url($url1); | 
						
						
							|  |   $url2 = normalize_url($url2); | 
						
						
							|  |   return $url1 == $url2; | 
						
						
							|  | } | 
						
						
							|  | 
 | 
						
						
							|  | function build_url($parsed_url) { | 
						
						
							|  |   $scheme   = isset($parsed_url['scheme']) ? $parsed_url['scheme'] . '://' : ''; | 
						
						
							|  |   $host     = isset($parsed_url['host']) ? $parsed_url['host'] : ''; | 
						
						
							|  |   $port     = isset($parsed_url['port']) ? ':' . $parsed_url['port'] : ''; | 
						
						
							|  |   $user     = isset($parsed_url['user']) ? $parsed_url['user'] : ''; | 
						
						
							|  |   $pass     = isset($parsed_url['pass']) ? ':' . $parsed_url['pass']  : ''; | 
						
						
							|  |   $pass     = ($user || $pass) ? "$pass@" : ''; | 
						
						
							|  |   $path     = isset($parsed_url['path']) ? $parsed_url['path'] : ''; | 
						
						
							|  |   $query    = isset($parsed_url['query']) ? '?' . $parsed_url['query'] : ''; | 
						
						
							|  |   $fragment = isset($parsed_url['fragment']) ? '#' . $parsed_url['fragment'] : ''; | 
						
						
							|  |   return "$scheme$user$pass$host$port$path$query$fragment"; | 
						
						
							|  | } | 
						
						
							|  | 
 | 
						
						
							|  | function should_follow_redirects($url) { | 
						
						
							|  |   $host = parse_url($url, PHP_URL_HOST); | 
						
						
							|  |   if(preg_match('/brid\.gy|appspot\.com|blogspot\.com|youtube\.com/', $host)) { | 
						
						
							|  |     return false; | 
						
						
							|  |   } else { | 
						
						
							|  |     return true; | 
						
						
							|  |   } | 
						
						
							|  | } | 
						
						
							|  | 
 | 
						
						
							|  | function phpmf2_version() { | 
						
						
							|  |   $composer = json_decode(file_get_contents(dirname(__FILE__).'/../composer.lock')); | 
						
						
							|  |   $version = 'unknown'; | 
						
						
							|  |   foreach($composer->packages as $pkg) { | 
						
						
							|  |     if($pkg->name == 'mf2/mf2') { | 
						
						
							|  |       $version = $pkg->version; | 
						
						
							|  |     } | 
						
						
							|  |   } | 
						
						
							|  |   return $version; | 
						
						
							|  | }
 |