특정 사용자의 글을 화면에서 지워주는 스크립트
낮에 특정 사용자의 글을 보고 싶지 않아서 확장기능을 쓴다는 얘기가 잠깐 있었죠.
이미 뭔가 있는 것 같긴 합니다만... 심심하니까 저도 제 맘대로 짜봤습니다.
const users = [
'185816', // 테스트용 제 아이디...
]
const interval = setInterval((userNodes = document.querySelectorAll('main div.w-full li a:not([class])')) => {
if (userNodes.length > 0) {
Array.prototype.slice.call(userNodes)
.filter((node) =>
users.some(
(user) => node.getAttribute('href') == `/users/${user}`
))
.forEach((node) => {
((post = node.parentNode.parentNode.parentNode) => {
post.parentNode.removeChild(post)
})()
})
clearInterval(interval)
}
}, 100)잘은 모르겠지만 뭔가 목록을 클라이언트단에서 그리는 것 같은데...(하이드레이션??? 아니면 그냥 Props???)
목록이 그려진 이후에 코드가 돌아야하는데 어떻게 해야할지 몰라서 그냥 인터벌 돌렸습니다.
커뮤니티 기본 목록에서만 돌아가는데 뭐 댓글도 지워버리고 싶다 하면 대충 노드만 잘 찝어서 수정하면 될 듯.
*Safari에서 UserScript로만 테스트됨.
**코드를 왜 이따구로 짰냐! -> 그냥 내가 재밌자고 짠 거니까...