aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Chris Lovering <[email protected]>2021-08-28 11:38:38 +0100
committerGravatar Chris Lovering <[email protected]>2021-08-28 11:38:38 +0100
commit2a83c5f8f7b9bfd60a50e67f20c04f31651bbcaa (patch)
treef7835ed7c727ddc73ae9d4e91536c8dba5e2b70c
parentAdded bot variables tag (#1784) (diff)
Only check URL-like objects against domain filters
Previously a message such as 'https://google.com hello! flask.request.method' would be filtered due to us filtering the url shortener t.me. This commit changes to logic so that we only check parts of the messages that matched the URL regex against our blacklist, to avoid these false-positives.
-rw-r--r--bot/exts/filters/filtering.py9
1 files changed, 5 insertions, 4 deletions
diff --git a/bot/exts/filters/filtering.py b/bot/exts/filters/filtering.py
index 10cc7885d..b7e91395e 100644
--- a/bot/exts/filters/filtering.py
+++ b/bot/exts/filters/filtering.py
@@ -478,15 +478,16 @@ class Filtering(Cog):
Second return value is a reason of URL blacklisting (can be None).
"""
text = self.clean_input(text)
- if not URL_RE.search(text):
+ matches = URL_RE.findall(text)
+ if not matches:
return False, None
- text = text.lower()
domain_blacklist = self._get_filterlist_items("domain_name", allowed=False)
for url in domain_blacklist:
- if url.lower() in text:
- return True, self._get_filterlist_value("domain_name", url, allowed=False)["comment"]
+ for match in matches:
+ if url.lower() in match.lower():
+ return True, self._get_filterlist_value("domain_name", url, allowed=False)["comment"]
return False, None