const _warned = {}; const NO_RESULT = [false, null]; export default class LinkLookup { constructor(links) { this._links = links; } check(post, href) { if (_warned[href]) { return NO_RESULT; } const normalized = href.replace(/^https?:\/\//, '').replace(/\/$/, ''); if (_warned[normalized]) { return NO_RESULT; } const linkInfo = this._links[normalized]; if (linkInfo) { if (post) { // Skip edits to the OP if (post) { const postNumber = post.get('post_number'); if (postNumber === 1 || postNumber === linkInfo.post_number) { return NO_RESULT; } } // Don't warn on older posts const createdAt = moment(post.get('created_at')); if (createdAt.isBefore(moment().subtract(2, 'weeks'))) { return NO_RESULT; } } _warned[href] = true; _warned[normalized] = true; return [true, linkInfo]; } return NO_RESULT; } };