*/
namespace Friendica\Util;
+use DOMDocument;
+use DOMXPath;
use Friendica\Content\OEmbed;
use Friendica\Core\Addon;
+use Friendica\Database\DBA;
use Friendica\Object\Image;
-use Friendica\Util\Network;
-use Friendica\Util\XML;
-
-use dba;
-use DOMXPath;
-use DOMDocument;
require_once 'include/dba.php';
-require_once "include/network.php";
/**
* @brief Class with methods for extracting certain content from an url
return false;
}
- $r = q(
- "SELECT * FROM `parsed_url` WHERE `url` = '%s' AND `guessing` = %d AND `oembed` = %d",
- dbesc(normalise_link($url)),
- intval(!$no_guessing),
- intval($do_oembed)
+ $parsed_url = DBA::selectFirst('parsed_url', ['content'],
+ ['url' => normalise_link($url), 'guessing' => !$no_guessing, 'oembed' => $do_oembed]
);
-
- if ($r) {
- $data = $r[0]["content"];
- }
-
- if (!is_null($data)) {
- $data = unserialize($data);
+ if (!empty($parsed_url['content'])) {
+ $data = unserialize($parsed_url['content']);
return $data;
}
$data = self::getSiteinfo($url, $no_guessing, $do_oembed);
- dba::insert(
+ DBA::insert(
'parsed_url',
[
'url' => normalise_link($url), 'guessing' => !$no_guessing,
'oembed' => $do_oembed, 'content' => serialize($data),
- 'created' => datetime_convert()],
+ 'created' => DateTimeFormat::utcNow()
+ ],
true
);
$siteinfo["url"] = $url;
$siteinfo["type"] = "link";
- $data = Network::zFetchURL($url);
+ $data = Network::curl($url);
if (!$data['success']) {
return($siteinfo);
}
if ($do_oembed) {
$oembed_data = OEmbed::fetchURL($url);
- if (!in_array($oembed_data->type, ["error", "rich", ""])) {
- $siteinfo["type"] = $oembed_data->type;
- }
-
- if (($oembed_data->type == "link") && ($siteinfo["type"] != "photo")) {
- if (isset($oembed_data->title)) {
- $siteinfo["title"] = trim($oembed_data->title);
+ if (!empty($oembed_data->type)) {
+ if (!in_array($oembed_data->type, ["error", "rich", ""])) {
+ $siteinfo["type"] = $oembed_data->type;
}
- if (isset($oembed_data->description)) {
- $siteinfo["text"] = trim($oembed_data->description);
- }
- if (isset($oembed_data->thumbnail_url)) {
- $siteinfo["image"] = $oembed_data->thumbnail_url;
+
+ if (($oembed_data->type == "link") && ($siteinfo["type"] != "photo")) {
+ if (isset($oembed_data->title)) {
+ $siteinfo["title"] = trim($oembed_data->title);
+ }
+ if (isset($oembed_data->description)) {
+ $siteinfo["text"] = trim($oembed_data->description);
+ }
+ if (isset($oembed_data->thumbnail_url)) {
+ $siteinfo["image"] = $oembed_data->thumbnail_url;
+ }
}
}
}
}
}
- $attr["content"] = trim(html_entity_decode($attr["content"], ENT_QUOTES, "UTF-8"));
+ if (!empty($attr["content"])) {
+ $attr["content"] = trim(html_entity_decode($attr["content"], ENT_QUOTES, "UTF-8"));
- if ($attr["content"] != "") {
switch (strtolower($attr["name"])) {
case "fulltitle":
$siteinfo["title"] = trim($attr["content"]);
}
}
- $attr["content"] = trim(html_entity_decode($attr["content"], ENT_QUOTES, "UTF-8"));
+ if (!empty($attr["content"])) {
+ $attr["content"] = trim(html_entity_decode($attr["content"], ENT_QUOTES, "UTF-8"));
- if ($attr["content"] != "") {
switch (strtolower($attr["property"])) {
case "og:image":
$siteinfo["image"] = $attr["content"];
"height" => $photodata[1]];
}
}
- } elseif ($siteinfo["image"] != "") {
+ } elseif (!empty($siteinfo["image"])) {
$src = self::completeUrl($siteinfo["image"], $url);
unset($siteinfo["image"]);