3 namespace Wallabag\CoreBundle\Helper
;
5 use Psr\Log\LoggerInterface
;
7 use Wallabag\CoreBundle\Entity\Entry
;
8 use Wallabag\CoreBundle\Repository\IgnoreOriginInstanceRuleRepository
;
10 class RuleBasedIgnoreOriginProcessor
14 protected $ignoreOriginInstanceRuleRepository;
16 public function __construct(RulerZ
$rulerz, LoggerInterface
$logger, IgnoreOriginInstanceRuleRepository
$ignoreOriginInstanceRuleRepository)
18 $this->rulerz
= $rulerz;
19 $this->logger
= $logger;
20 $this->ignoreOriginInstanceRuleRepository
= $ignoreOriginInstanceRuleRepository;
24 * @param Entry $entry Entry to process
28 public function process(Entry
$entry)
30 $url = $entry->getUrl();
31 $userRules = $entry->getUser()->getConfig()->getIgnoreOriginRules()->toArray();
32 $rules = array_merge($this->ignoreOriginInstanceRuleRepository
->findAll(), $userRules);
34 $parsed_url = parse_url($url);
35 // We add the former url as a new key _all for pattern matching
36 $parsed_url['_all'] = $url;
38 foreach ($rules as $rule) {
39 if ($this->rulerz
->satisfies($parsed_url, $rule->getRule())) {
40 $this->logger
->info('Origin url matching ignore rule.', [
41 'rule' => $rule->getRule(),