Reddit Repeating Post Filter

Reddit has a bug where the same post can reappear multiple times while scrolling. This script removes those duplicates

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램을 설치해야 합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name         Reddit Repeating Post Filter
// @description  Reddit has a bug where the same post can reappear multiple times while scrolling. This script removes those duplicates
// @match        https://www.reddit.com/*
// @version      0.1
// @author       mica
// @namespace    greasyfork.org/users/12559
// @license      MIT
// ==/UserScript==

let a = [];
const observer = new MutationObserver(() => {
    if (location.pathname.match(/\/r\/[\w\d]*\/$/) || location.search.includes('?feed')) {
        document.querySelectorAll('a[slot=full-post-link]:not(.checked)').forEach(e => {
            if (a.some(url => e.href.match(url))) {
                e.closest('article').remove();
            } else {
                e.classList.add('checked');
            }
            a.push(e.href);
        })
    }
});
observer.observe(document.body, {
    childList: true,
    subtree: true
});