public function parseUrl($url)
{
$essence = new \Essence\Essence();
$options = EmbeddedAssetsPlugin::getParameters();
EmbeddedAssetsPlugin::log("Requesting URL \"{$url}\"");
$result = $essence->extract($url, $options);
if ($result && $result->html) {
EmbeddedAssetsPlugin::log("Embed data found");
$properties = array();
foreach ($result as $property => $value) {
if (empty($value) && isset($this->_ogProperties[$property])) {
$properties[] = $property;
}
}
if (!empty($properties)) {
EmbeddedAssetsPlugin::log("Some data missing - looking for related Open Graph metadata");
try {
$data = $this->_readExternalFile($url);
if (!$data) {
throw new \Exception("Could not read data");
}
$reader = new \Opengraph\Reader();
$reader->parse($data);
foreach ($properties as $property) {
$ogProperty = $this->_ogProperties[$property];
$result->{$property} = $reader->getMeta($ogProperty);
}
} catch (\Exception $e) {
EmbeddedAssetsPlugin::log("Error requesting/parsing Open Graph metadata (\"{$e->getMessage()}\")", LogLevel::Warning);
}
}
}
return $result;
}