| <?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'] = '/'; | |
|   if(isset($parts['host'])) | |
|     $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; | |
| } | |
| 
 | |
| function allow_iframe_video($value = NULL) { | |
|   static $allow_iframe_video = false; | |
| 
 | |
|   if (isset($value)) | |
|     $allow_iframe_video = $value; | |
| 
 | |
|   return $allow_iframe_video; | |
| }
 |