X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=src%2FWallabag%2FCoreBundle%2FHelper%2FContentProxy.php;h=5635866530def1643bcacbe987c2bb3ddbc95b4a;hb=5e9009ce86a366001616fad5b28cb59dc20ee4df;hp=642ba6f9cad9eff9945463c7e8d949a73adad71d;hpb=36e6ef52a176ef654eade931a23f60fd91344f2f;p=github%2Fwallabag%2Fwallabag.git diff --git a/src/Wallabag/CoreBundle/Helper/ContentProxy.php b/src/Wallabag/CoreBundle/Helper/ContentProxy.php index 642ba6f9..56358665 100644 --- a/src/Wallabag/CoreBundle/Helper/ContentProxy.php +++ b/src/Wallabag/CoreBundle/Helper/ContentProxy.php @@ -51,6 +51,9 @@ class ContentProxy // do we have to fetch the content or the provided one is ok? if (empty($content) || false === $this->validateContent($content)) { $fetchedContent = $this->graby->fetchContent($url); + + // when content is imported, we have information in $content + // in case fetching content goes bad, we'll keep the imported information instead of overriding them if (empty($content) || $fetchedContent['html'] !== $this->fetchingErrorMessage) { $content = $fetchedContent; } @@ -76,8 +79,12 @@ class ContentProxy $entry->setContent($html); $entry->setHttpStatus(isset($content['status']) ? $content['status'] : ''); - $entry->setLanguage($content['language']); - $entry->setMimetype($content['content_type']); + if (isset($content['date']) && null !== $content['date']) { + $entry->setPublishedAt(new \DateTime($content['date'])); + } + + $entry->setLanguage(isset($content['language']) ? $content['language'] : ''); + $entry->setMimetype(isset($content['content_type']) ? $content['content_type'] : ''); $entry->setReadingTime(Utils::getReadingTime($html)); $domainName = parse_url($entry->getUrl(), PHP_URL_HOST); @@ -85,12 +92,12 @@ class ContentProxy $entry->setDomainName($domainName); } - if (isset($content['open_graph']['og_image'])) { + if (isset($content['open_graph']['og_image']) && $content['open_graph']['og_image']) { $entry->setPreviewPicture($content['open_graph']['og_image']); } // if content is an image define as a preview too - if (in_array($this->mimeGuesser->guess($content['content_type']), ['jpeg', 'jpg', 'gif', 'png'], true)) { + if (isset($content['content_type']) && in_array($this->mimeGuesser->guess($content['content_type']), ['jpeg', 'jpg', 'gif', 'png'], true)) { $entry->setPreviewPicture($content['url']); }