X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Fparse_url.php;h=5061035df27cbb49d7c49672c0aa5db0a4e79295;hb=9e143287d65a3a5d169b5203c20e99b2bd5b0088;hp=3b2522ab12fb05184bcd4f54f1af6a85ebbc2c00;hpb=3aa77685fcccff9739384136b4894de43200fa8c;p=friendica.git diff --git a/mod/parse_url.php b/mod/parse_url.php index 3b2522ab12..5061035df2 100644 --- a/mod/parse_url.php +++ b/mod/parse_url.php @@ -1,20 +1,36 @@ . * * This module does parse an url for embeddable content (audio, video, image files or link) * information and does format this information to BBCode * * @see ParseUrl::getSiteinfo() for more information about scraping embeddable content */ + use Friendica\App; +use Friendica\Content\PageInfo; use Friendica\Core\Hook; use Friendica\Core\Logger; use Friendica\Core\System; -use Friendica\Util\Network; +use Friendica\DI; use Friendica\Util\ParseUrl; +use Friendica\Util\Strings; function parse_url_content(App $a) { @@ -25,10 +41,14 @@ function parse_url_content(App $a) $br = "\n"; - if (!empty($_GET['binurl'])) { + if (!empty($_GET['binurl']) && Strings::isHex($_GET['binurl'])) { $url = trim(hex2bin($_GET['binurl'])); - } else { + } elseif (!empty($_GET['url'])) { $url = trim($_GET['url']); + // fallback in case no url is valid + } else { + Logger::info('No url given'); + exit(); } if (!empty($_GET['title'])) { @@ -64,21 +84,12 @@ function parse_url_content(App $a) // Check if the URL is an image, video or audio file. If so format // the URL with the corresponding BBCode media tag - $redirects = 0; // Fetch the header of the URL - $curlResponse = Network::curl($url, false, $redirects, ['novalidate' => true, 'nobody' => true]); + $curlResponse = DI::httpRequest()->head($url); if ($curlResponse->isSuccess()) { - // Convert the header fields into an array - $hdrs = []; - $h = explode("\n", $curlResponse->getHeader()); - foreach ($h as $l) { - $header = array_map('trim', explode(':', trim($l), 2)); - if (count($header) == 2) { - list($k, $v) = $header; - $hdrs[$k] = $v; - } - } + $hdrs = $curlResponse->getHeaderArray(); + $type = null; $content_type = ''; $bbcode = ''; @@ -159,7 +170,7 @@ function parse_url_content(App $a) } // Format it as BBCode attachment - $info = add_page_info_data($siteinfo); + $info = "\n" . PageInfo::getFooterFromData($siteinfo); echo $info; @@ -167,7 +178,7 @@ function parse_url_content(App $a) } /** - * @brief Legacy function to call ParseUrl::getSiteinfoCached + * Legacy function to call ParseUrl::getSiteinfoCached * * Note: We have moved the function to ParseUrl.php. This function is only for * legacy support and will be remove in the future