diff --git a/ZNE-ChangeLog/ChangeLog-0.8.0.md b/ZNE-ChangeLog/ChangeLog-0.8.0.md index 59f0af55..f87f1cb9 100644 --- a/ZNE-ChangeLog/ChangeLog-0.8.0.md +++ b/ZNE-ChangeLog/ChangeLog-0.8.0.md @@ -19,6 +19,7 @@ **Other:** * Implemented the log level overriding for separate modules for easier debugging. +* Make the site block check implemented in `ContentFilter` usable from plugins and core modules via `SiteManager.isAddressBlocked()`. ## Plugins diff --git a/plugins/ContentFilter/ContentFilterPlugin.py b/plugins/ContentFilter/ContentFilterPlugin.py index f2f84b49..6bd8c7f7 100644 --- a/plugins/ContentFilter/ContentFilterPlugin.py +++ b/plugins/ContentFilter/ContentFilterPlugin.py @@ -24,6 +24,14 @@ class SiteManagerPlugin(object): super(SiteManagerPlugin, self).load(*args, **kwargs) filter_storage = ContentFilterStorage(site_manager=self) + def isAddressBlocked(self, address): + # FIXME: code duplication of isSiteblocked(address) or isSiteblocked(address_hashed) + # in several places here and below + address_hashed = filter_storage.getSiteAddressHashed(address) + if filter_storage.isSiteblocked(address) or filter_storage.isSiteblocked(address_hashed): + return True + return super(SiteManagerPlugin, self).isAddressBlocked(address) + def add(self, address, *args, **kwargs): should_ignore_block = kwargs.get("ignore_block") or kwargs.get("settings") if should_ignore_block: diff --git a/src/Site/SiteManager.py b/src/Site/SiteManager.py index 684d69fc..1b065e93 100644 --- a/src/Site/SiteManager.py +++ b/src/Site/SiteManager.py @@ -155,6 +155,10 @@ class SiteManager(object): def resolveDomainCached(self, domain): return self.resolveDomain(domain) + # Checks if the address is blocked. To be implemented in content filter plugins. + def isAddressBlocked(self, address): + return False + # Return: Site object or None if not found def get(self, address): if self.isDomainCached(address):