Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name Anonym ID ban
- // @version 1
- // @grant none
- // ==/UserScript==
- const get_banned_ids = () => JSON.parse(window.localStorage.getItem('banned_ids') || '[]')
- const toggle_banned_id = (id) => {
- const banned_ids = get_banned_ids()
- const new_banned_ids = banned_ids.includes(id)
- ? banned_ids.filter(i => i !== id)
- : [...banned_ids, id]
- window.localStorage.setItem('banned_ids', JSON.stringify(new_banned_ids, undefined, 4))
- }
- const get_anon_id = post => (post.querySelector('.post__anon>span') || post.querySelector('.post__email>span')).innerText
- const refresh_anonym_id_ban = () => {
- const banned_ids = get_banned_ids()
- const all_posts = Array.from(document.getElementsByClassName('post_type_reply'))
- for (let post of all_posts) {
- let toggle_ban_button = post.querySelector('.post__anon>.toggle_ban_button') || post.querySelector('.post__email>.toggle_ban_button')
- if (!toggle_ban_button) {
- toggle_ban_button = document.createElement('span')
- toggle_ban_button.classList.add('toggle_ban_button')
- toggle_ban_button.appendChild(document.createTextNode(' ☠ '))
- toggle_ban_button.addEventListener(
- 'click',
- event => {
- toggle_banned_id(get_anon_id(post))
- refresh_anonym_id_ban()
- event.preventDefault()
- }
- )
- const toggle_ban_button_container = post.querySelector('.post__anon') || post.querySelector('.post__email')
- toggle_ban_button_container.appendChild(toggle_ban_button)
- }
- toggle_ban_button.style.color = banned_ids.includes(get_anon_id(post)) ? 'darkred' : 'inherit'
- }
- const banned_posts = all_posts.filter(
- post => banned_ids.includes(get_anon_id(post))
- )
- setTimeout(
- () => {
- for (let post of banned_posts) {
- post.classList.add('post_type_hidden')
- }
- },
- 100
- )
- }
- const thread_observer = new MutationObserver(() => {
- refresh_anonym_id_ban()
- });
- window.addEventListener('DOMContentLoaded', () => {
- thread_observer.observe(document.getElementsByClassName('thread').item(0), { childList: true })
- })
- refresh_anonym_id_ban()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement