diff --git a/src/posts/queue.js b/src/posts/queue.js index 8d6550b7fd..23419d2ee3 100644 --- a/src/posts/queue.js +++ b/src/posts/queue.js @@ -96,9 +96,16 @@ module.exports = function (Posts) { if (!isPrivileged && reputation < meta.config['min:rep:post-links']) { const parsed = await plugins.hooks.fire('filter:parse.raw', String(content)); - if (parsed.match(/]*>([^<]+)<\/a>/g)) { - return false; + const matches = parsed.matchAll(/]*href="([^"]+)"[^>]*>/g); + let external = 0; + for (const [, href] of matches) { + const internal = utils.isInternalURI(new URL(href, nconf.get('url')), new URL(nconf.get('url')), nconf.get('relative_path')); + if (!internal) { + external += 1; + } } + + return external === 0; } return true; };