https://kone.gg/s/somisoft/ckFX5TrlwDK01YclKPk5Kb
최근 엄청난 다계정으로 특정 서브에 도배하는 사람이 있어서 애드가드를 통해 하신 글이 있더라고요
애드블럭 규칙으로는 제한적이라 유저스크립트를 통해 규칙을 통해 필터링 해봤습니다
// ==UserScript==
// @name Kone 도배 게시글 필터링
// @namespace Kone Filter
// @version 1.0
// @description SPA 방식의 도배 게시글 필터링
// @author cloud67p
// @match https://kone.gg/*
// @grant none
// ==/UserScript==
(function () {
'use strict';
// 도배 키워드 순서 패턴들 (여러 개의 정규식 패턴)
const spamPatterns = [
/석.*종.*시.*대/, // "석 → 종 → 시 → 대"
/정.*신.*매.*니.*저/, // "정 → 신 → 매 → 니 → 저"
/욕.*좀.*그.*만.*해.*라/, // "욕 → 좀 → 그 → 만 → 해 → 라"
// 추가 패턴을 여기다 계속 추가할 수 있음
];
// 게시글을 감지하고 차단하는 함수
function filterSpamPosts() {
const postAnchors = document.querySelectorAll('a[title]');
postAnchors.forEach(anchor => {
const title = anchor.getAttribute('title');
if (title && spamPatterns.some(p => p.test(title))) {
// 콘솔에 로그 남기고 제거
console.log("도배 감지됨:", title);
const postWrapper = anchor.closest('a');
if (postWrapper) {
postWrapper.style.display = 'none'; // 또는 postWrapper.remove();
}
}
});
}
// 최초 실행
filterSpamPosts();
// URL 변경 시 감지 (SPA 방식 대응)
window.addEventListener('popstate', function () {
console.log('URL 변경 감지됨! 필터링을 다시 실행합니다.');
filterSpamPosts();
});
// MutationObserver를 사용하여 DOM 변경 시 게시글을 실시간으로 감지하고 필터링
const observer = new MutationObserver(() => {
filterSpamPosts();
});
observer.observe(document.body, {
childList: true, // 새로운 게시글이 추가되면 감지
subtree: true // 하위 요소까지 모두 감지
});
// 1초마다 필터링을 3번 반복 실행
let runCount = 0;
const intervalId = setInterval(() => {
if (runCount < 3) {
filterSpamPosts();
runCount++;
} else {
clearInterval(intervalId);
}
}, 1000); // 1초 간격으로 3번 실행
})();
s/all 서브에서 자주 보이시던데 규칙을 추가하여 대응 할수 있습니다
