From 1c9cd2a7f03a66a1ae5132ff270e94a7fe6eb9ed Mon Sep 17 00:00:00 2001 From: =?utf8?q?K=C3=A9vin=20Gomez?= Date: Sat, 17 Oct 2015 17:45:51 +0200 Subject: [PATCH] Errors in the automatic tagging do not prevent the entry from being added --- src/Wallabag/CoreBundle/Helper/ContentProxy.php | 14 ++++++++++++-- .../CoreBundle/Resources/config/services.yml | 1 + .../CoreBundle/Tests/Helper/ContentProxyTest.php | 11 ++++++++--- 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/src/Wallabag/CoreBundle/Helper/ContentProxy.php b/src/Wallabag/CoreBundle/Helper/ContentProxy.php index dc6e1184..3d585e61 100644 --- a/src/Wallabag/CoreBundle/Helper/ContentProxy.php +++ b/src/Wallabag/CoreBundle/Helper/ContentProxy.php @@ -3,6 +3,7 @@ namespace Wallabag\CoreBundle\Helper; use Graby\Graby; +use Psr\Log\LoggerInterface as Logger; use Wallabag\CoreBundle\Entity\Entry; use Wallabag\CoreBundle\Tools\Utils; @@ -14,11 +15,13 @@ class ContentProxy { protected $graby; protected $tagger; + protected $logger; - public function __construct(Graby $graby, RuleBasedTagger $tagger) + public function __construct(Graby $graby, RuleBasedTagger $tagger, Logger $logger) { $this->graby = $graby; $this->tagger = $tagger; + $this->logger = $logger; } /** @@ -61,7 +64,14 @@ class ContentProxy $entry->setPreviewPicture($content['open_graph']['og_image']); } - $this->tagger->tag($entry); + try { + $this->tagger->tag($entry); + } catch (\Exception $e) { + $this->logger->error('Error while trying to automatically tag an entry.', array( + 'entry_url' => $url, + 'error_msg' => $e->getMessage(), + )); + } return $entry; } diff --git a/src/Wallabag/CoreBundle/Resources/config/services.yml b/src/Wallabag/CoreBundle/Resources/config/services.yml index 4cf46b33..0100a62d 100644 --- a/src/Wallabag/CoreBundle/Resources/config/services.yml +++ b/src/Wallabag/CoreBundle/Resources/config/services.yml @@ -54,6 +54,7 @@ services: arguments: - @wallabag_core.graby - @wallabag_core.rule_based_tagger + - @logger wallabag_core.rule_based_tagger: class: Wallabag\CoreBundle\Helper\RuleBasedTagger diff --git a/src/Wallabag/CoreBundle/Tests/Helper/ContentProxyTest.php b/src/Wallabag/CoreBundle/Tests/Helper/ContentProxyTest.php index 1688a48a..f59edb0c 100644 --- a/src/Wallabag/CoreBundle/Tests/Helper/ContentProxyTest.php +++ b/src/Wallabag/CoreBundle/Tests/Helper/ContentProxyTest.php @@ -29,7 +29,7 @@ class ContentProxyTest extends \PHPUnit_Framework_TestCase 'language' => '', )); - $proxy = new ContentProxy($graby, $tagger); + $proxy = new ContentProxy($graby, $tagger, $this->getLoggerMock()); $entry = $proxy->updateEntry(new Entry(new User()), 'http://0.0.0.0'); $this->assertEquals('http://0.0.0.0', $entry->getUrl()); @@ -67,7 +67,7 @@ class ContentProxyTest extends \PHPUnit_Framework_TestCase ), )); - $proxy = new ContentProxy($graby, $tagger); + $proxy = new ContentProxy($graby, $tagger, $this->getLoggerMock()); $entry = $proxy->updateEntry(new Entry(new User()), 'http://domain.io'); $this->assertEquals('http://domain.io', $entry->getUrl()); @@ -106,7 +106,7 @@ class ContentProxyTest extends \PHPUnit_Framework_TestCase ), )); - $proxy = new ContentProxy($graby, $tagger); + $proxy = new ContentProxy($graby, $tagger, $this->getLoggerMock()); $entry = $proxy->updateEntry(new Entry(new User()), 'http://0.0.0.0'); $this->assertEquals('http://1.1.1.1', $entry->getUrl()); @@ -126,4 +126,9 @@ class ContentProxyTest extends \PHPUnit_Framework_TestCase ->disableOriginalConstructor() ->getMock(); } + + private function getLoggerMock() + { + return $this->getMock('Psr\Log\LoggerInterface'); + } } -- 2.41.0