diff --git a/plugins/ContentFilter/ContentFilterPlugin.py b/plugins/ContentFilter/ContentFilterPlugin.py
index f46321d4..da1054b1 100644
--- a/plugins/ContentFilter/ContentFilterPlugin.py
+++ b/plugins/ContentFilter/ContentFilterPlugin.py
@@ -25,6 +25,13 @@ class SiteManagerPlugin(object):
super(SiteManagerPlugin, self).load(*args, **kwargs)
filter_storage = ContentFilterStorage(site_manager=self)
+ def add(self, address, *args, **kwargs):
+ if filter_storage.isSiteblocked(address):
+ details = filter_storage.getSiteblockDetails(address)
+ raise Exception("Site blocked: %s" % html.escape(details.get("reason", "unknown reason")))
+ else:
+ return super(SiteManagerPlugin, self).add(address, *args, **kwargs)
+
@PluginManager.registerTo("UiWebsocket")
class UiWebsocketPlugin(object):
diff --git a/plugins/ContentFilter/ContentFilterStorage.py b/plugins/ContentFilter/ContentFilterStorage.py
index 3df0b435..2215ccca 100644
--- a/plugins/ContentFilter/ContentFilterStorage.py
+++ b/plugins/ContentFilter/ContentFilterStorage.py
@@ -120,6 +120,12 @@ class ContentFilterStorage(object):
else:
return False
+ def getSiteblockDetails(self, address):
+ details = self.file_content["siteblocks"].get(address)
+ if not details:
+ details = self.include_filters["siteblocks"].get(address)
+ return details
+
# Search and remove or readd files of an user
def changeDbs(self, auth_address, action):
self.log.debug("Mute action %s on user %s" % (action, auth_address))
diff --git a/plugins/MergerSite/MergerSitePlugin.py b/plugins/MergerSite/MergerSitePlugin.py
index ae2b1484..ca2ba31e 100644
--- a/plugins/MergerSite/MergerSitePlugin.py
+++ b/plugins/MergerSite/MergerSitePlugin.py
@@ -79,8 +79,11 @@ class UiWebsocketPlugin(object):
def cbMergerSiteAdd(self, to, addresses):
added = 0
for address in addresses:
- added += 1
- site_manager.need(address)
+ try:
+ site_manager.need(address)
+ added += 1
+ except Exception as err:
+ self.cmd("notification", ["error", _["Adding %s failed: %s"] % (address, err)])
if added:
self.cmd("notification", ["done", _["Added %s new site"] % added, 5000])
RateLimit.called(self.site.address + "-MergerSiteAdd")