use Friendica\Core\Hook;
use Friendica\Core\Logger;
use Friendica\Core\System;
-use Friendica\Network\HTTPRequest;
+use Friendica\DI;
use Friendica\Util\ParseUrl;
use Friendica\Util\Strings;
// Check if the URL is an image, video or audio file. If so format
// the URL with the corresponding BBCode media tag
// Fetch the header of the URL
- $curlResponse = HTTPRequest::curl($url, false, ['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 = '';
$template = '[bookmark=%s]%s[/bookmark]%s';
- $arr = ['url' => $url, 'text' => ''];
+ $arr = ['url' => $url, 'format' => $format, 'text' => null];
Hook::callAll('parse_link', $arr);
- if (strlen($arr['text'])) {
- echo $arr['text'];
- exit();
+ if ($arr['text']) {
+ if ($format == 'json') {
+ System::jsonExit($arr['text']);
+ } else {
+ echo $arr['text'];
+ exit();
+ }
}
// If there is already some content information submitted we don't