From a64568ce0c87af8c39ca12e9798f0470d515fb5d Mon Sep 17 00:00:00 2001 From: Faab007NL Date: Thu, 12 Aug 2021 00:29:38 +0200 Subject: [PATCH] Fixed url filter --- .../module/modules/UrlWhitelistModule.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/main/java/me/TechsCode/TechDiscordBot/module/modules/UrlWhitelistModule.java b/src/main/java/me/TechsCode/TechDiscordBot/module/modules/UrlWhitelistModule.java index 97270065..85cd3ac6 100644 --- a/src/main/java/me/TechsCode/TechDiscordBot/module/modules/UrlWhitelistModule.java +++ b/src/main/java/me/TechsCode/TechDiscordBot/module/modules/UrlWhitelistModule.java @@ -19,6 +19,8 @@ import java.util.*; import java.util.List; import java.util.concurrent.TimeUnit; +import java.util.regex.Matcher; +import java.util.regex.Pattern; public class UrlWhitelistModule extends Module { private final DefinedQuery STAFF_ROLE = new DefinedQuery() { @@ -122,11 +124,17 @@ private Set extractUrls(String text) { for (String messagePart : messageParts) { String domain = ""; boolean successfulParse = false; - if(!messagePart.startsWith("http://") && !messagePart.startsWith("https://")){ - messagePart = "http://"+messagePart; + + Pattern p = Pattern.compile("[(http(s)?):\\/\\/(www\\.)?a-zA-Z0-9@:%._\\+~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_\\+.~#?&//=]*)");//. represents single character + Matcher m = p.matcher(messagePart); + boolean b = m.matches(); + String regexResponse = m.group(0); + + if(!regexResponse.startsWith("http://") && !regexResponse.startsWith("https://")){ + regexResponse = "http://"+regexResponse; } try{ - URL url = new URL(messagePart); + URL url = new URL(regexResponse); String[] domainExploded = url.getHost().split("\\."); domain = domainExploded[domainExploded.length - 2] + "." + domainExploded[domainExploded.length - 1]; successfulParse = true;