X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=src%2FWallabag%2FCoreBundle%2FHelper%2FContentProxy.php;h=fd059325458892c33dcaf576593839e42766d5b6;hb=1093e979ff49f9072c30d1d576c6adf1f8e76bdf;hp=d90d3dc8caf1d5938e0c808ebd5fa5089c0528ba;hpb=7f55941856549a3f5f45c42fdc171d66ff7ee297;p=github%2Fwallabag%2Fwallabag.git diff --git a/src/Wallabag/CoreBundle/Helper/ContentProxy.php b/src/Wallabag/CoreBundle/Helper/ContentProxy.php index d90d3dc8..fd059325 100644 --- a/src/Wallabag/CoreBundle/Helper/ContentProxy.php +++ b/src/Wallabag/CoreBundle/Helper/ContentProxy.php @@ -8,6 +8,7 @@ use Wallabag\CoreBundle\Entity\Entry; use Wallabag\CoreBundle\Entity\Tag; use Wallabag\CoreBundle\Tools\Utils; use Wallabag\CoreBundle\Repository\TagRepository; +use Symfony\Component\HttpFoundation\File\MimeType\MimeTypeExtensionGuesser; /** * This kind of proxy class take care of getting the content from an url @@ -19,6 +20,7 @@ class ContentProxy protected $tagger; protected $logger; protected $tagRepository; + protected $mimeGuesser; public function __construct(Graby $graby, RuleBasedTagger $tagger, TagRepository $tagRepository, LoggerInterface $logger) { @@ -26,6 +28,7 @@ class ContentProxy $this->tagger = $tagger; $this->logger = $logger; $this->tagRepository = $tagRepository; + $this->mimeGuesser = new MimeTypeExtensionGuesser(); } /** @@ -65,6 +68,8 @@ class ContentProxy $entry->setUrl($content['url'] ?: $url); $entry->setTitle($title); + $entry->setContent($html); + $entry->setHttpStatus(isset($content['status']) ? $content['status'] : ''); $entry->setLanguage($content['language']); $entry->setMimetype($content['content_type']); @@ -75,12 +80,15 @@ class ContentProxy $entry->setDomainName($domainName); } - $entry->setContent($html); - if (isset($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)) { + $entry->setPreviewPicture($content['url']); + } + try { $this->tagger->tag($entry); } catch (\Exception $e) {