Added function to fetch links to verify the
Main / build-and-push-docker-image (20.x) (pull_request) Successful in 7m24s

This commit is contained in:
2026-04-14 18:08:21 -04:00
parent aaac8c3aa7
commit a3cc0f0711
3 changed files with 78 additions and 18 deletions
+49
View File
@@ -0,0 +1,49 @@
/**
* This function will fetch a url to follow all redirects and compare the base url
* with the RegEx to validate false and true positives.
*
* @param message The message that originally triggered the provided RegEx
* @param banRegEx RegEx to check against
* @returns @type boolean
*/
const linkChecker = async (message: string, banRegEx: RegExp) => {
const detectedLinks = message.split(" ").map(subStr => {
if (banRegEx.test(subStr)) {
return subStr;
}
});
if (!detectedLinks || detectedLinks.length === 0) {
return false;
}
const resolvedURLs = detectedLinks.map(async string => {
if (string === undefined) {
return false;
}
const url =
string.startsWith("http://") || string.startsWith("https://")
? string
: `https://${string}`;
const res = await fetch(url, {
headers: {
"user-agent":
"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:140.0) Gecko/20100101 Firefox/140.0"
}
});
const resolvedURL = new URL(res.url);
const baseURL = resolvedURL.hostname.split(".").slice(-2).join(".");
if (/^x\.com/i.test(baseURL)) {
return true;
}
});
return (await Promise.all(resolvedURLs)).includes(true);
};
export default linkChecker;